• Home
  • Forum
  • Fare Web
  • PHP

Api Xml

  • Creatore Discussione Creatore Discussione IImanuII
  • Data di inizio Data di inizio 10 Gen 2013
Prec.
  • 1
  • 2
  • 3
  • 4
  • 5
Succ.
Primo Prec. 4 di 5 Succ. Ultimo

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 11 Feb 2013
  • #61
Fai un var_dump($riga) dopo $contatore++.
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 11 Feb 2013
  • #62
Longo8 ha scritto:
Fai un var_dump($riga) dopo $contatore++.
Clicca per allargare...

Ecco

Non capisco sembra che a contare, conti :\
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 11 Feb 2013
  • #63
Puoi dirmi cosa restituisce a video il var_dump?
Magari metti 5 al posto di 250 per fare questa prova.
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 11 Feb 2013
  • #64
Longo8 ha scritto:
Puoi dirmi cosa restituisce a video il var_dump?
Magari metti 5 al posto di 250 per fare questa prova.
Clicca per allargare...

HTML:
array(1) { [0]=> array(2) { ["canale"]=> string(19) "Russia Today" ["trasmissione"]=> string(43) "Cross Talk" } } array(1) { [1]=> array(2) { ["canale"]=> string(19) "Primafila 15" ["trasmissione"]=> string(55) "Alle 16:30 Senza freni" } } array(1) { [2]=> array(2) { ["canale"]=> string(15) "Rai News" ["trasmissione"]=> string(38) "METEO" } } array(1) { [3]=> array(2) { ["canale"]=> string(18) "Planet Kids" ["trasmissione"]=> string(50) "Scuola di vampiri" } } array(1) { [4]=> array(2) { ["canale"]=> string(18) "Real Time+1" ["trasmissione"]=> string(52) "Guardaroba Perfetto" } } Real Time+1 Guardaroba Perfetto

Se premevi su "Ecco" vedevi il risultato. Era un link xDD
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 11 Feb 2013
  • #65
PHP:
$riga=array(0 => array("canale" => "canale", "trasmissione" => "trasmissione")); 
for(...){
//...
$riga[$contatore]['canale']=$canale;
$riga[$contatore]['trasmissione']=$trasmissione;
}
//ordinamento

for($i = 0; $i < $contatore; $i++){ 
   echo $riga[$i]['canale']." ".$riga[$i]['trasmissione'];   
}
Prova una cosa del genere e togli questo:
PHP:
    $riga=array($contatore => array("canale" => $canale, "trasmissione" => $trasmissione));
Se non funziona testo io domani al pc.
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 11 Feb 2013
  • #66
Funziona ho aggiunto sort($riga); per l'ordine numerico. Vorrei però chiederti alcune cose.

In primis mi piacerebbe se mi spiegassi passo passo il codice da te postato. Il perché tu abbia messo $riga fuori e il modo in cui hai contato con $contatore++
Purtroppo non mi accontento che le cose funzionino mi piacerebbe capirle, trovo veramente inutile e sterile scopiazzare codice di altri senza almeno capirlo, per piacere istruiscimi T.T :crying:


Il codice funziona, tuttavia (so che sono rompipalle) ho notato una cosa: se faccio il de-bug di
PHP:
var_dump($riga);
noto che ogni canale viene duplicato.

Ora ti faccio capire meglio:

Il codice php per i primi 2 canali è questo:
PHP:
<?php      
$uri = 'http://www.laguidatv.it/';      

$get = file_get_contents($uri);

$contatore = 0; 

//costruisco una posizione iniziale  
$inizio = strpos($get, '<');  

$riga=array(0 => array("canale" => "canale", "trasmissione" => "trasmissione")); 

// comincio il ciclo  
for($i=0; $i<2; $i++){  

    //grab del programma televisivo  
    $prog_inizio = strpos($get, '<span class="search_text">', $inizio);    
    $prog_fine = strpos($get, '</span>', $prog_inizio);     

    $trasmissione = substr($get,$prog_inizio,$prog_fine-$prog_inizio+7);     

    //grab del canale che trasmette il programma  
    $canale_inizio = strpos($get, '<i>', $prog_inizio);   
    $canale_fine = strpos($get, '</i>', $canale_inizio);       

    //chiudo la prima posizione  
    $inizio = $canale_fine;   
    $canale = substr($get,$canale_inizio,$canale_fine-$canale_inizio+4);     
 
	$riga[$contatore]['canale']=$canale;
	$riga[$contatore]['trasmissione']=$trasmissione;
	
	$contatore++;
	
	var_dump($riga);
}

sort($riga);

//ordinamento
for($i = 0; $i < $contatore; $i++){ 
   echo "<br />" . $riga[$i]['canale'] . " " . $riga[$i]['trasmissione'];   
} 

?>

L'ordine alfabetico è rispettato solo che non capisco perchè ci sono delle ripetizioni:

HTML:
array(1) {
[0]=> array(2) { ["canale"]=> string(15) "Rai News" ["trasmissione"]=> string(43) "L'ECONOMIA" } 
} 

array(2) {
	[0]=> array(2) { 
		 ["canale"]=> string(15) "Rai News" ["trasmissione"]=> string(43) "L'ECONOMIA" 
		} 
	[1]=> array(2) { 
		 ["canale"]=> string(19) "Primafila 10" ["trasmissione"]=> string(63) "Alle 18:00 Viaggio in paradiso" 
		} 
} 

Primafila 10 Alle 18:00 Viaggio in paradiso
Rai News L'ECONOMIA

Rai News si ripete 2 volte why? Forse è perchè non ho capito il funzionamento del codice?
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 11 Feb 2013
  • #67
Veramente solo il primo dovrebbe ripetersi due volte con quel codice.
Dovresti aspettare domani perché lo testi meglio.

Edit: a titolo informativo: quello è ciò che stampa il var_dump.
Il for di stampa, da a video la stessa cosa?
 
Ultima modifica: 11 Feb 2013

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 11 Feb 2013
  • #68
Longo8 ha scritto:
Veramente solo il primo dovrebbe ripetersi due volte con quel codice.
Dovresti aspettare domani perché lo testi meglio.
Clicca per allargare...

Ovviamente non c'è fretta è lapalissiano intuire che non mi devi nulla quindi ovviamente se e quando puoi mi darai spiegazioni e testerai il codice xD :beer:
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 11 Feb 2013
  • #69
Avevo fatto un edit. Puoi leggere? È stato pubblicato 1 min dopo il tuo commento
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 11 Feb 2013
  • #70
Longo8 ha scritto:
Avevo fatto un edit. Puoi leggere? È stato pubblicato 1 min dopo il tuo commento
Clicca per allargare...

Si scusa No a video va tutto come dovrebbe andare. Per questo ti avevo scritto che molto probabilmente non avevo capito il codice. Se puoi domani me lo spieghi?
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 11 Feb 2013
  • #71
Sisi va bene.
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 12 Feb 2013
  • #72
Longo8 ha scritto:
Sisi va bene.
Clicca per allargare...

Ciao prima delle spiegazioni volevo chiederti un'ulteriore cosa:

E' possibile escludere i tag html che circondano le informazioni che mi servono?
Cioè:
PHP:
    //grab del programma televisivo  
    $prog_inizio = strpos($get, '<span class="search_text">', $inizio);    
    $prog_fine = strpos($get, '</span>', $prog_inizio);     

    $trasmissione = substr($get,$prog_inizio,$prog_fine-$prog_inizio+7);
Vorrei che i tag <span class="search_text"> e </span> non siano considerati.

per eliminare </span> mi è bastato rimuovere il +7 il problema è che non riesco ad eliminare <span class="search_text"> sai aiutarmi ancora?
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 12 Feb 2013
  • #73
Basta aggiungere il numero di caratteri:
PHP:
    $trasmissione = substr($get,$prog_inizio+26,$prog_fine-$prog_inizio);
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 12 Feb 2013
  • #74
Longo8 ha scritto:
Basta aggiungere il numero di caratteri:
PHP:
    $trasmissione = substr($get,$prog_inizio+26,$prog_fine-$prog_inizio);
Clicca per allargare...

dho! mettevo -26 ecco perchè Attendo la spiegazione del codice a codesto punto xD :mavieni:

Ps: buon carnevale gnam gnam lasagna :O_
 
Ultima modifica: 12 Feb 2013

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 12 Feb 2013
  • #75
Ho testato il codice.
Ripeteva la prima riga 2 volte perchè lo avevi messo dentro al ciclo il var_dump().
Poi bisogna mettere +26 e -26 (+3 e -3) per eliminare i tag.
Non c'è bisogno di dichiarare il vettore fuori ma puoi inserire i valori direttamente nel ciclo come ho fatto io nel codice seguente.
PHP:
 <?php      
$uri = 'http://www.laguidatv.it/';      

$get = file_get_contents($uri);

$contatore = 0; 

//costruisco una posizione iniziale  
$inizio = strpos($get, '<');  

// comincio il ciclo  
for($i=0; $i<3; $i++){  

    //grab del programma televisivo  
    $prog_inizio = strpos($get, '<span class="search_text">', $inizio);    
    $prog_fine = strpos($get, '</span>', $prog_inizio);     

    $trasmissione = substr($get,$prog_inizio+26,$prog_fine-$prog_inizio-26);     

    //grab del canale che trasmette il programma  
    $canale_inizio = strpos($get, '<i>', $prog_inizio);   
    $canale_fine = strpos($get, '</i>', $canale_inizio);       

    //chiudo la prima posizione  
    $inizio = $canale_fine;   
    $canale = substr($get,$canale_inizio+3,$canale_fine-$canale_inizio-3);     
 
    $riga[$contatore]['canale']=$canale;
    $riga[$contatore]['trasmissione']=$trasmissione;
    
    $contatore++;
    

}
var_dump($riga);
sort($riga);

//ordinamento
for($i = 0; $i < $contatore; $i++){ 
   echo "<br />" . $riga[$i]['canale'] . " " . $riga[$i]['trasmissione'];   
} 

?>

Se servono ulteriori spiegazioni chiedi pure.
Ovviamente alla fine c'è la stampa e non credo che necessiti alcuna spiegazione tantomeno l'ordinamento che credo abbia fatto tu o quantomeno lo utilizzi bene visto che ti ordina i canali.
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 12 Feb 2013
  • #76
Mi si offusca la vista a leggere ora per quanto sono stanco xD mi hanno fatto correre pe 30" + 1h e 20 di attrezzi :V sto morendo, credimi che domattina sicuramente avrò bisogno di chiarimenti (non sulla stampa e non sull'ordinamento =) )

Ho provato il codice ma c'è qualcosa che non va, all'improvviso mostra tantissimi link. Prova a estendere il codice a 236 che dovrebbe essere il numero dei canali
 
Ultima modifica: 12 Feb 2013

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 12 Feb 2013
  • #77
La cosa strana è che all'apparenza la cosa è randomica. Il canale che ha quest errore ha sempre prima questo simbolo 7]>

Edit: adesso l'errore è sparito.. che il webmaster stia modificando qualcosa?

EDIT2: si il problema è del sito
 
Ultima modifica: 13 Feb 2013

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 13 Feb 2013
  • #78
Quindi funziona o no? A me andava bene quando l'ho provato.
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 13 Feb 2013
  • #79
Longo8 ha scritto:
Quindi funziona o no? A me andava bene quando l'ho provato.
Clicca per allargare...

Si si fanciullo funziona bene, ovviamente se il webmaster del sito apporta modifiche penso che sia normale che sballi un pochino. Sai percaso come posso fare per far si che l'output della pagina sia in csv? magari se hai qualche guida sarebbe il massimo...

Poi vorrei chiederti qualche spiegazione se non ti secca:

1.
PHP:
$inizio = strpos($get, '<');
qui perchè hai di nuovo richiamato il contenuto della pagina con $get?

2.
Potresti spiegarmi la sintassi di queste righe?

PHP:
    $riga[$contatore]['canale']=$canale; 
    $riga[$contatore]['trasmissione']=$trasmissione;

EDIT: googlando l'unico tutorial che mi è sembrato adattabile alla mia situazione è http://www.danieletabacco.com/19/articolo/esportare-con-php-dati-da-mysql-a-csv.html

Che ne pensi è fattibile stampare tutte le celle della tabella in un csv?
 
Ultima modifica: 13 Feb 2013

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 13 Feb 2013
  • #80
Si ma a che ti serve metterle in un csv? Cambiano ogni minuto i programmi quindi non vedo l'utilità.
Per quanto riguarda i punti da spiegare (premetto non sono abile a spiegare):
1) mi prendo la posizione iniziale del documento che vista così non servirebbe ma siccome nel ciclo serve la posizione a cui è arrivato il ciclo precedente per poter continuare alla fine allora devo ogni volta ripartire dalla posizione $inizio che, una volta che abbiamo prelevato quello che ci serve, lo metto al punto di fine grazie alla riga:
PHP:
$inizio = $canale_fine;
2) $riga è un array di 2 elementi per ogni posizione e così lo sto popolando con tutti i valori di canale e trasmissione (che sono i due elementi).
 
Prec.
  • 1
  • 2
  • 3
  • 4
  • 5
Succ.
Primo Prec. 4 di 5 Succ. Ultimo
Devi accedere o registrarti per poter rispondere.

Discussioni simili

P
Stored procedure import xml/json web API
  • paridozzo
  • 29 Ago 2013
  • MySQL
Risposte
0
Visite
1K
MySQL 29 Ago 2013
paridozzo
P
Api xml
  • catellostefano
  • 15 Dic 2009
  • XML
Risposte
4
Visite
2K
XML 22 Dic 2009
MarcoGrazia
CPanel XML Api
  • catellostefano
  • 8 Lug 2009
  • Web Server
Risposte
0
Visite
2K
Web Server 8 Lug 2009
catellostefano
[Vendo/Offro] Realizzazione applicazioni web e/o API rest
  • Rikk73
  • 26 Apr 2023
  • Offerte e Richieste di Lavoro e/o Collaborazione
Risposte
0
Visite
954
Offerte e Richieste di Lavoro e/o Collaborazione 26 Apr 2023
Rikk73
Amazon SP-API
  • Daniele_Carrara
  • 9 Giu 2022
  • PHP
Risposte
0
Visite
1K
PHP 9 Giu 2022
Daniele_Carrara
L
  • Bloccata
Api Google - kml
  • lugalzaggesi
  • 4 Gen 2022
  • Javascript
Risposte
1
Visite
1K
Javascript 4 Gen 2022
Max 1
M
Google API Vision
  • MaxFor
  • 13 Dic 2021
  • PHP
Risposte
5
Visite
2K
PHP 18 Dic 2021
MaxFor
M
L
  • Bloccata
java + Api di google
  • lugalzaggesi
  • 9 Ago 2021
  • Javascript
Risposte
1
Visite
2K
Javascript 10 Ago 2021
Max 1
S
Leggere dati da API e visualizzarli
  • Sako00
  • 22 Apr 2021
  • PHP
Risposte
0
Visite
1K
PHP 22 Apr 2021
Sako00
S
M
user agent per il download di api
  • master1986
  • 13 Mar 2021
  • PHP
Risposte
0
Visite
741
PHP 13 Mar 2021
master1986
M
Chiamata Rest Api durante Redirect
  • motleyrulez
  • 6 Mag 2020
  • PHP
Risposte
1
Visite
1K
PHP 7 Mag 2020
macus_adi
Consigli e aiuti integrazione API
  • bubino8
  • 20 Mar 2020
  • Programmazione
Risposte
8
Visite
3K
Programmazione 12 Ott 2021
zabitmrw
Z
[WordPress] problemi plug meteo api key
  • michele81
  • 2 Dic 2019
  • WordPress
Risposte
4
Visite
3K
WordPress 2 Dic 2019
michele81
P
Passagio dati complessi tra una ASP.NET webapi e Angular
  • PazzoFrontEnd
  • 23 Nov 2019
  • ASP.NET
Risposte
1
Visite
11K
ASP.NET 14 Lug 2020
Rikk73
W
Api facebook o api Instagram (v1(?
  • webfra01
  • 17 Feb 2019
  • Ajax
Risposte
0
Visite
4K
Ajax 17 Feb 2019
webfra01
W
A
[PHP] Rest Api
  • Alberto Simonazzi
  • 29 Ott 2018
  • PHP
Risposte
1
Visite
1K
PHP 30 Ott 2018
macus_adi
E
[PHP] rest api
  • emanuelesalati
  • 23 Ott 2018
  • PHP
Risposte
3
Visite
3K
PHP 24 Ott 2018
Rikk73
W
[A PAGAMENTO] Programmatore per sviluppare API REST in C#
  • w_t
  • 22 Mag 2018
  • Offerte e Richieste di Lavoro e/o Collaborazione
Risposte
1
Visite
1K
Offerte e Richieste di Lavoro e/o Collaborazione 5 Dic 2018
marcomarsala
M
W
[C#] Api RESTFul server/client con cifratura
  • w_t
  • 19 Mag 2018
  • .NET Framework
Risposte
0
Visite
2K
.NET Framework 19 Mag 2018
w_t
W
W
[C#] Sicurezza Client/Server - SOAP o RESTFull API
  • w_t
  • 15 Mag 2018
  • .NET Framework
Risposte
0
Visite
1K
.NET Framework 15 Mag 2018
w_t
W
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?