Api Xml

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
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.
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
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.
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
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;  
?>
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
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;
}
?>
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
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:

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
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 :\
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
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.
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
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() ?
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
L'esempio di prima funzionava vero? Anche se solo per un canale..allora basta fare un ciclo giocando sui puntatori. Perché cambi funzione?
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
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:
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
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; 
} 
?>
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
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) :eek:

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:

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
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
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
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.
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
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;  
?>
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
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.
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
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:

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
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?
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Ma all'inizio non andava? Le primissime prove che abbiamo fatto.
 
Discussioni simili
Autore Titolo Forum Risposte Data
P Stored procedure import xml/json web API MySQL 0
catellostefano Api xml XML 4
catellostefano CPanel XML Api Web Server 0
Rikk73 [Vendo/Offro] Realizzazione applicazioni web e/o API rest Offerte e Richieste di Lavoro e/o Collaborazione 0
Daniele_Carrara Amazon SP-API PHP 0
L Api Google - kml Javascript 1
M Google API Vision PHP 5
L java + Api di google Javascript 1
S Leggere dati da API e visualizzarli PHP 0
M user agent per il download di api PHP 0
motleyrulez Chiamata Rest Api durante Redirect PHP 1
bubino8 Consigli e aiuti integrazione API Programmazione 8
michele81 [WordPress] problemi plug meteo api key WordPress 4
W Api facebook o api Instagram (v1(? Ajax 0
A [PHP] Rest Api PHP 1
E [PHP] rest api PHP 3
W [A PAGAMENTO] Programmatore per sviluppare API REST in C# Offerte e Richieste di Lavoro e/o Collaborazione 1
W [C#] Api RESTFul server/client con cifratura .NET Framework 0
W [C#] Sicurezza Client/Server - SOAP o RESTFull API .NET Framework 0
M Creare un lettore audio con le API di Soundcloud Programmazione 0
T Api google maps Sviluppo app per Android 1
M [PHP] API con metodo POST PHP 0
D [Javascript] Automazione Wordpress CF7 per Teamup Calendar (tramite api) Javascript 1
M [PHP] GoDaddy API PHP 2
V Api di twitter cambiata Ajax 0
C PHP e API PHP 0
A API per app PHP 1
M Aiuto con script di ricerca video youtube data api v3 Javascript 1
M Installazione libreria Zend GData per google Api PHP 0
L Funzione per API HTML5 Javascript 0
L API Geolocation Javascript 4
Z hosting gratuiti e problemi con web api Hosting 1
A API Hotspot nativo android Sviluppo app per Android 0
S Db access, controllo percorso chilometrico con api maps. MS Access 0
J Youtube api per progetto per un museo Javascript 0
K App che utilizzi le api di google maps Sviluppo app per Android 1
A Semplice applicazione con le facebook api PHP 1
S Inserimento API key Singring su CSM Wordpress PHP 0
C Amazon API: problemi con signature PHP 0
ivarello Google API Javascript 2
A Google maps API v2 in app Android Sviluppo app per Android 2
P Api imdb PHP 0
S Creare Sistema di API Request e Response libero e protetto PHP 7
M Api per gestione video youtube in joomla 3.2 Joomla 0
J Twitter API nuova ver 1.1 PHP 0
K Google Scholar api SEO e Posizionamento 0
L Google api v3 geolocalizzazione problemini. PHP 2
G Paginazione php utilizzando le api di careerjet PHP 0
G Paginazione php utilizzando le api di careerjet WordPress 1
A problema api youtube Social Media Marketing 5

Discussioni simili