• 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. 3 di 5 Succ. Ultimo

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 8 Feb 2013
  • #41
Longo8 ha scritto:
Ma all'inizio non andava? Le primissime prove che abbiamo fatto.
Clicca per allargare...

No con il sito Rai.it non abbiamo mai provato. Non va comunque :| e non so il perchè

EDIT: dopo tanto impazzire forse ho trovato una soluzione
 
Ultima modifica: 8 Feb 2013

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 8 Feb 2013
  • #42
Posta posta.
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 8 Feb 2013
  • #43
Longo8 ha scritto:
Posta posta.
Clicca per allargare...

Ho trovato semplicemente un nuovo palinsesto qui.

Il codice che ho utilizzato è questo:

PHP:
<?php    
$uri = 'http://www.laguidatv.it/';    

$get = file_get_contents($uri);

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

// comincio il ciclo
for($i=0; $i<250; $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 = "<br />" . $canale . "&nbsp" . $trasmissione;

//stampo
echo $riga;

}

?>

Ora, come puoi vedere qui sono riuscito a catturare tutti i canali presenti nella pagina.
Tuttavia volevo fare ancora alcune cose:
1. Volevo prendere anche l'ora d'inizio e la durata di ogni programma. Il fatto è che non riesco a catturarli poichè non sono racchiusi in nessun tag, hai idea di come fare?
2. Come puoi vedere ho aggiunto
PHP:
$riga = "<br />" . $canale . "&nbsp" . $trasmissione;
questo perchè vorrei inserire $riga in un array e ordinarlo in ordine alfabetico poichè se vedi aggiornando più volte la pagina originaria (http://www.laguidatv.it/) i canali si ordinano in base all'ora e a me così ballonzolanti non servono. E' la strada giusta questa? (lo stavo facendo ora)

Eccoti aggiornato
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 8 Feb 2013
  • #44
Non c'è bisogno che siano racchiusi in dei tag.
Per esempio se prima di ogni ora c'è scritto:
Ora inizio : 20.00
Allora cerca Ora inizio così come ora cerchi i tag.
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 8 Feb 2013
  • #45
Longo8 ha scritto:
Non c'è bisogno che siano racchiusi in dei tag.
Per esempio se prima di ogni ora c'è scritto:
Ora inizio : 20.00
Allora cerca Ora inizio così come ora cerchi i tag.
Clicca per allargare...

Si lo so ma se dai un occhio alla pagina comprendi perchè non riesco a prenderli: prima non c'è scritto nulla. Se mi fai la cortesia di dare un occhio magari puoi aiutarmi =)
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 8 Feb 2013
  • #46
IImanuII ha scritto:
Si lo so ma se dai un occhio alla pagina comprendi perchè non riesco a prenderli: prima non c'è scritto nulla. Se mi fai la cortesia di dare un occhio magari puoi aiutarmi =)
Clicca per allargare...

Niente ho provato ad utilizzare dei tag che venivano prima ma nulla. Non riesco neppure ad ordinare le righe :V
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 8 Feb 2013
  • #47
Intato hai un tag </br> prima di ogni orario di inizio tranne il primo.
In più non vedo un orario di fine del programma nella pagina che hai postato.
Per l'ordinamento: come vuoi ordinare?
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 8 Feb 2013
  • #48
Longo8 ha scritto:
Intato hai un tag </br> prima di ogni orario di inizio tranne il primo.
In più non vedo un orario di fine del programma nella pagina che hai postato.
Per l'ordinamento: come vuoi ordinare?
Clicca per allargare...

Vado per gradi a rispondere altrimenti faccio un pasticcio
=)

1. Non c'è un ora di fine ma la durata del programma ed è quella (compresa l'ora di inizio che vorrei inserire)
2. Ho provato ad implementare il codice con il grab della durata del programma alla fine. Purtroppo va in parte:

PHP:
<?php     
$uri = 'http://www.laguidatv.it/';     

$get = file_get_contents($uri); 

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

// comincio il ciclo 
for($i=0; $i<1; $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);      

	$canale = substr($get,$canale_inizio,$canale_fine-$canale_inizio+4);  
	
	//grab della durata del programma
	$durata_inizio = strpos($get, '</a>', $canale_fine);  
	$durata_fine = strpos($get, '<br>', $durata_inizio);     
	
	//chiudo la prima posizione 
	$inizio = $durata_fine;  
  	$durata = substr($get,$durata_inizio-4,$durata_fine-$durata_inizio-4);

	$riga = "<br />" . $canale . "&nbsp" . $trasmissione . "&nbsp" . $durata; 

	//stampo 
	echo $riga; 

} 
?>
Inutile spiegarlo, meglio se dai un'occhiata direttamente http://giornale.site40.net/new.php
Nota bene che non ho fatto partire il ciclo per tutti i canali ma solo per il 1 e in parte funziona se vedi. Infatti la prima riga è corretta è il resto che non dovrebbe esserci.

3. Vorrei ordinare il tutto in ordine alfabetico per canale. Cioè le righe cominciano tutte con il nome del canale e vorrei che queste fossero così ordinate alfabeticamente. Ho provato ad includere la la riga in un array e successivamente ad usare un count() dopodichè con sort() ho tentato di ordinarli, ma mi restituiva o tutti valori 0 o tutti valori 1 :\

Direi di andare per gradi però che si fa per prima?
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 8 Feb 2013
  • #49
Per fare il riordinamento devi salvarti tutti i canali con gli orari e trasmissioni in un array di array per poi riordinarli.
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 8 Feb 2013
  • #50
Longo8 ha scritto:
Per fare il riordinamento devi salvarti tutti i canali con gli orari e trasmissioni in un array di array per poi riordinarli.
Clicca per allargare...

Sicuramente sbaglio. Ho fatto così

PHP:
<?php     
$uri = 'http://www.laguidatv.it/';     

$get = file_get_contents($uri); 

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

// comincio il ciclo 
for($i=0; $i<250; $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);    

	$a_canale = array($canale);
	$a_trasmissione = array($trasmissione);

	$riga = "<br />" . $a_canale . "&nbsp" . $a_trasmissione; 

	//stampo 
	echo $riga; 

} 
?>

La stampa è

HTML:
Array Array
Array Array
Array Array
Array Array
Array Array
Array Array
Array Array
Array Array
x250 volte
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 8 Feb 2013
  • #51
Dovresti fare la stampa così:
PHP:
    $riga = "<br />" . $a_canale[0] . "&nbsp" . $a_trasmissione[0];
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 9 Feb 2013
  • #52
Longo8 ha scritto:
Dovresti fare la stampa così:
PHP:
    $riga = "<br />" . $a_canale[0] . "&nbsp" . $a_trasmissione[0];
Clicca per allargare...

Sono un fesso non ho parole non me ne ero proprio accorto...

Comunque ti pareva che non avevo problemi anche con l'ordinamento degli array?

PHP:
<?php     
$uri = 'http://www.laguidatv.it/';     

$get = file_get_contents($uri); 

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

// comincio il ciclo 
for($i=0; $i<250; $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);    

    $a_canale = array($canale);
    $a_trasmissione = array($trasmissione);

    $riga = array( "<br />" . $a_canale[0] . "&nbsp" . $a_trasmissione[0]); 
		
	sort($riga);

	foreach($riga as $posizione => $nome){ 
		
		echo "Posizione Canale[$posizione] : $nome <br/>";   
	}   
} 
?>

L'output è:

HTML:
Posizione Canale[0] : 
Rai News COLORI 
1Posizione Canale[0] : 
Milan Channel Milanello Live 
1Posizione Canale[0] : 
Sky Cinema Cult Cyrus 
1Posizione Canale[0] :

Se faccio
PHP:
echo count($riga);
mi conta 1 cioè non considera il ciclo :\
 
Ultima modifica: 9 Feb 2013

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 9 Feb 2013
  • #53
Si ovvio..in quel modo prendi un canale in tutte le sue informazioni e lo metti in un array e in quell'array c'è solo quel canale e tu tenti di ordinare..(quando in realtà ce n'è solo uno).
Allora devi metterli prima tutti in un array di array e poi quando finisci di metterli (cioè fuori dal ciclo) ordini per poi stampare.
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 9 Feb 2013
  • #54
Longo8 ha scritto:
Si ovvio..in quel modo prendi un canale in tutte le sue informazioni e lo metti in un array e in quell'array c'è solo quel canale e tu tenti di ordinare..(quando in realtà ce n'è solo uno).
Allora devi metterli prima tutti in un array di array e poi quando finisci di metterli (cioè fuori dal ciclo) ordini per poi stampare.
Clicca per allargare...

Non ho capito bene al soggetto di quel "tutti".

così
PHP:
    $riga = array( "<br />" . $a_canale[0] . "&nbsp" . $a_trasmissione[0]);

La riga non è un array di a_canale e a_trasmissione?

Dovrei operare fuori dal ciclo for? Se stampo echo $riga[0]; stampa solo la prima T.T
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 9 Feb 2013
  • #55
Infatti c'è solo quella visto che scrivi sempre su quella. In realtà se stampi fuori c'è l'ultima perché si sovrascrive sempre sul primo elemento dell'array.
Dovresti fare qualcosa tipo:

PHP:
$contatore = 0;
for(...){
//...
    $riga=array($contatore => array("canale" => $canale, "trasmissione" => $trasmissione));
    $contatore++;
//...
}
//ordinamento
//...
//stampa finale
for($i = 0; $i < $contatore; $i++)
   echo $riga[$i]['canale']." ".$riga[$i]['trasmissione'];
Ordini come vuoi in base a quello che desideri. Ci sono molte guide e diversi procedimento da poter adottare per ordinare un array.
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 10 Feb 2013
  • #56
Longo8 ha scritto:
Infatti c'è solo quella visto che scrivi sempre su quella. In realtà se stampi fuori c'è l'ultima perché si sovrascrive sempre sul primo elemento dell'array.
Dovresti fare qualcosa tipo:

PHP:
$contatore = 0;
for(...){
//...
    $riga=array($contatore => array("canale" => $canale, "trasmissione" => $trasmissione));
    $contatore++;
//...
}
//ordinamento
//...
//stampa finale
for($i = 0; $i < $contatore; $i++)
   echo $riga[$i]['canale']." ".$riga[$i]['trasmissione'];
Ordini come vuoi in base a quello che desideri. Ci sono molte guide e diversi procedimento da poter adottare per ordinare un array.
Clicca per allargare...

Ti ringrazio nel pomeriggio provo ora vado da decatlon che ho rotto le scarpe per la corsa grazie!
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 10 Feb 2013
  • #57
Va bene attendo aggiornamenti
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 11 Feb 2013
  • #58
Longo8 ha scritto:
Va bene attendo aggiornamenti
Clicca per allargare...

Ancora una volta nulla T.T stampa sempre 1 sola riga. Ecco il codice


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<250; $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);     

    $a_canale = array($canale); 
    $a_trasmissione = array($trasmissione); 

    $riga = array( "<br />" . $canale . "&nbsp" . $trasmissione);
	
	//$riga = array( "<br />" . $a_canale[0] . "&nbsp" . $a_trasmissione[0]);
	
    $riga=array($contatore => array("canale" => $canale, "trasmissione" => $trasmissione)); 
    
	$contatore++;
	
}

	//ordinamento
	natsort($riga);

	//stampa finale 
	for($k = 0; $k < $contatore; $k++){
	   echo $riga[$k]['canale']." ".$riga[$k]['trasmissione'];  
	}
?>
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 11 Feb 2013
  • #59
Dovresti rimuovere questa:
PHP:
    $riga = array( "<br />" . $canale . "&nbsp" . $trasmissione);
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 11 Feb 2013
  • #60
Maledizione ancora nulla uffa. Ho commentato anche $a_trasmissione e $a_canale ma stampa sempre e solo l'ultimo risultato :V

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<250; $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);     

    //$a_canale = array($canale); 
    //$a_trasmissione = array($trasmissione); 

    //$riga = array( "<br />" . $canale . "&nbsp" . $trasmissione);
	
	//$riga = array( "<br />" . $a_canale[0] . "&nbsp" . $a_trasmissione[0]);
	
    $riga=array($contatore => array("canale" => $canale, "trasmissione" => $trasmissione)); 
    
	$contatore++;
	
}

//ordinamento
natsort($riga);

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

?>
 
Prec.
  • 1
  • 2
  • 3
  • 4
  • 5
Succ.
Primo Prec. 3 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
956
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?