Api Xml

Si dovresti mettere tutto nel ciclo.
Comunque per fare delle prove ci sono di simulatori come bluestacks dove basta installare l'apk e usi l'app come se avessi il cellulare.
 
Si dovresti mettere tutto nel ciclo.
Comunque per fare delle prove ci sono di simulatori come bluestacks dove basta installare l'apk e usi l'app come se avessi il cellulare.

I simulatori già li utilizzo, ma ci sono mille modelli e in genere va meglio sempre provarli su dispositivi reali, in sostanza sugli emulatori vanno, dovrebbero andare anche sui vari smartphone e tablet. "In teoria" xD

Per quanto riguarda il ciclo non mi potresti dare una dritta? Il risultato che ottengo è sempre un loop :| e poi ovviamente il server chiude la connessione.
 
I simulatori già li utilizzo, ma ci sono mille modelli e in genere va meglio sempre provarli su dispositivi reali, in sostanza sugli emulatori vanno, dovrebbero andare anche sui vari smartphone e tablet. "In teoria" xD

Per quanto riguarda il ciclo non mi potresti dare una dritta? Il risultato che ottengo è sempre un loop :| e poi ovviamente il server chiude la connessione.

Googlando ho trovato
http://stackoverflow.com/questions/12361743/php-file-get-html-content-into-array-by-tag

Solo che non riesco ad adattarlo.

Ho riordinato in questo modo:

PHP:
<?php  
$uri = 'http://tv.zam.it/gadget/gadget_tv.php';  

$get = file_get_contents($uri); 

$ora_inizio = strpos($get, '<td class="gen" valign="top">');
$ora_fine = strpos($get, '</td>', $ora_inizio);   

$ora = substr($get,$ora_inizio,$ora_fine-$ora_inizio+5); 

$prog_inizio = strpos($get, '<span class="gen">'); 
$prog_fine = strpos($get, '</span>', $prog_inizio); 

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

echo $ora . "&nbsp" . $trasmissione;  
?>
 
Sono da cellulare e non posso testare, prova così:
PHP:
<?php  
$uri = 'http://tv.zam.it/gadget/gadget_tv.php';  

$get = file_get_contents($uri); 
for($i=0; $i<5; $i++){ //intanto prova a fare prendere i primi 5 canali
$ora_inizio = strpos($get, '<td class="gen" valign="top">');
$ora_fine = strpos($get, '</td>', $ora_inizio);   

$ora = substr($get,$ora_inizio,$ora_fine-$ora_inizio+5); 

$prog_inizio = strpos($get, '<span class="gen">'); 
$prog_fine = strpos($get, '</span>', $prog_inizio); 

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

echo $ora . "&nbsp" . $trasmissione;
}
?>
 
Sono da cellulare e non posso testare, prova così:
PHP:
<?php  
$uri = 'http://tv.zam.it/gadget/gadget_tv.php';  

$get = file_get_contents($uri); 
for($i=0; $i<5; $i++){ //intanto prova a fare prendere i primi 5 canali
$ora_inizio = strpos($get, '<td class="gen" valign="top">');
$ora_fine = strpos($get, '</td>', $ora_inizio);   

$ora = substr($get,$ora_inizio,$ora_fine-$ora_inizio+5); 

$prog_inizio = strpos($get, '<span class="gen">'); 
$prog_fine = strpos($get, '</span>', $prog_inizio); 

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

echo $ora . "&nbsp" . $trasmissione;
}
?>

Scusa se non te l'ho postato ma avevo già provato così: in questo modo duplica la prima stringa per 5 volte quindi si vedrà per 5 volte lo stesso canale. Credo la via sia un altra (correggimi se sbaglio).

Quello a cui ho pensato è che strpos trova solo il primo valore all'interno di $get, se volessi trovarli tutti non mi converrebbe usare preg_match_all() ?
Poi una volta creato l'array si dovrebbe utilizzare foreach.
Il problema è che non so utilizzarlo.

Il ragionamento è errato?
 
Ultima modifica:
In base a quanto scritto prima ho provato

PHP:
<?php   
$uri = 'http://tv.zam.it/gadget/gadget_tv.php';   

$get = file_get_contents($uri);  

preg_match_all('/<td class="gen" valign="top">/', $get, $ris);
preg_match_all('/<\/td>/', $get, $ris);

for($i=0; $i<5; $i++)
{
    echo $ris[$i] , '<br>';
}

?>

Ma a schermo restituisce solo Array :\
 
Si esatto. Allora devi lavorare con i puntatori come ti avevo detto sfruttado il terzo parametro della strpos() che indica il punto da dove partire per controllare se c'è il testo desiderato.
 
Si esatto. Allora devi lavorare con i puntatori come ti avevo detto sfruttado il terzo parametro della strpos() che indica il punto da dove partire per controllare se c'è il testo desiderato.

Non ho ancora inteso, devo utilizzare l'espressione regolare preg_match_all() oppure strpos() ?
 
L'esempio di prima funzionava vero? Anche se solo per un canale..allora basta fare un ciclo giocando sui puntatori. Perché cambi funzione?
 
L'esempio di prima funzionava vero? Anche se solo per un canale..allora basta fare un ciclo giocando sui puntatori. Perché cambi funzione?
Perchè non riesco a creare un ciclo corretto che non vada in loop o che non ripeta sempre lo stesso risultato :V :dipser::dipser:
 
Prova con qualcosa del genere e se ho dimenticato qualcosa controlla sempre i puntatori che puntano al terzo parametro di strpos.
PHP:
<?php   
$uri = 'http://tv.zam.it/gadget/gadget_tv.php';   

$get = file_get_contents($uri);  
$inizio = strpos($get, '<');
for($i=0; $i<5; $i++){ //intanto prova a fare prendere i primi 5 canali 
$ora_inizio = strpos($get, '<td class="gen" valign="top">', $inizio); 
$ora_fine = strpos($get, '</td>', $ora_inizio);    

$ora = substr($get,$ora_inizio,$ora_fine-$ora_inizio+5);  

$prog_inizio = strpos($get, '<span class="gen">', $ora_inizio);  
$prog_fine = strpos($get, '</span>', $prog_inizio);  

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

echo $ora . "&nbsp" . $trasmissione; 
} 
?>
 
Così funziona ma non capisco il perchè :| secondo la mia errata evidente logica avrebbe dovuto ripetere sempre e solo il primo canale, perché va?????

Saresti così cortese da spiegarmelo? Fare le cose senza capire non mi è mai piaciuto (e soprattutto non rende autonomi) :o

PHP:
<?php    
$uri = 'http://tv.zam.it/gadget/gadget_tv.php';    

$get = file_get_contents($uri);

$inizio = strpos($get, '<');

for($i=0; $i<5; $i++){ //intanto prova a fare prendere i primi 5 canali 

$ora_inizio = strpos($get, '<td class="gen" valign="top">', $inizio);  
$ora_fine = strpos($get, '</td>', $ora_inizio);     

$ora = substr($get,$ora_inizio,$ora_fine-$ora_inizio+5);   

$prog_inizio = strpos($get, '<span class="gen">', $ora_inizio);   
$prog_fine = strpos($get, '</span>', $prog_inizio);   

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

echo "<br />" . $ora . "&nbsp" . $trasmissione ."<br />";  
}  
?>

Soprattutto non capisco perchè hai messo
PHP:
 $inizio = strpos($get, '<');

EDIT: funziona in parte sballa tutto se aumento da 5 a 40 ed anche se lascio 5 gli orari non coincidono con la trasmissione

EDIT2 Ho trovato la disaccortenza, il codice non prende i programmi che sono visti come link quindi salta e scombussola tutto
 
Ultima modifica:
PHP:
 $inizio = strpos($get, '<');
Ne ho compreso il perchè tuttavia non riesco a venire a capo del problema secondo me è meglio fare un ciclo per ogni palinsesto, prendendo la source dal sito originale.

Magari provo domani pomeriggio ora sono stanchissimo e vado a dormire con le pive nel sacco T.T
 
Quello l'ho messo per prendere la posizione iniziale diciamo. Poi la posizione la aggiorno sempre a ogni ciclo infatti a strpos() viene fatto fare il controllo a partire da un puntatore che è il suo terzo parametro.
Prova con 2-3 vedi cosa ti stampa e cosa ti dovrebbe stampare. Magari posta tutto e appena posso fare dal pc lo testo anche.
 
Quello l'ho messo per prendere la posizione iniziale diciamo. Poi la posizione la aggiorno sempre a ogni ciclo infatti a strpos() viene fatto fare il controllo a partire da un puntatore che è il suo terzo parametro.
Prova con 2-3 vedi cosa ti stampa e cosa ti dovrebbe stampare. Magari posta tutto e appena posso fare dal pc lo testo anche.

Si l'avevo capito difatti ho tentato di creare il ciclo con il palinsesto di yahoo e ci sono riusci ma anche quello non andava granchè.

A questo punto ho pensato di elaborare un ciclo per ogni rete (mediaset, rai etc...) così da essere sicuro di non avere sorprese future.

Ho tentato di cominciare con la rai e mi sembrava piuttosto facile. Il problema è che visualizzo una pagina bianca e non so il perchè. Ti posto il codice (che non va) per individuare solo ora e programma di rai 1:

PHP:
<?php  
$uri = 'http://www.rai.it/dl/rai/guidaTv.html';  

$get = file_get_contents($uri); 

$prog_inizio = strpos($get, '<a class="tit" '); 
$prog_fine = strpos($get, '</a>', $prog_inizio); 

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

echo $trasmissione;  
?>
 
Dovrebbe andare se il testo che ricerchi c'è in $get. Prova a fare stampare il contenuto di $get per vedere se prende quello che deve prendere e se è presente il testo da te cercato.
 
Dovrebbe andare se il testo che ricerchi c'è in $get. Prova a fare stampare il contenuto di $get per vedere se prende quello che deve prendere e se è presente il testo da te cercato.

Effettivamente c'è qualcosa che non torna. La parte a me interessata risulta essere vuota, cioè sono presenti solo una serie di pallini (che si riferiscono alla lista presumo) ma non ci sono i palinsesti che cerco. Per questo credo non vada il codice postato su.

Come mi comporto? Cerco eventuali dipendenze oppure è inutile perchè quella parte di codice è protetto?

EDIT: potrebbe essere questa http://www.rai.it/dl/portale/html/palinsesti/static/palinsestoOraInOnda.html la parte mancante? Come la inserisco eventualmente? Sempre con get?
 
Ultima modifica:
Si prova e vedi come va..

Una vera seccatura nulla di fatto, ho con httptrack importato tutti i file collegati alla pagina all'interno del mio spzio ftp e provato ad inserire tutte le dipendenze (con relative cartelle) ma nulla :/ che scocciatura uffffff

Mi conviene ancora una volta cambiare resource?
 

Discussioni simili