Problema con DOMXPath class

di il
6 risposte

Problema con DOMXPath class

Buonasera,
Ho bisogno di risolvere un problema, ho un codice che inserisco di seguito nel quale recupero i dati da una pagina specifica.
Il mio problema è che quando cambiano la classifica e tutti gli altri dati su suddetta pagina ovvero questa di seguito:

"portale.fitet.org/risultati/new_rank/dettaglioatleta_unica.php?ATLETA=723553&ID_CLASS=176&ZU=1&AVVERSARIO=0"

la "CLASS=176" cambia numero e incrementa di 1, diventando "CLASS=177" e quindi non mi passa i rizultati corretti sulla mia pagina web.

Qualcuno saprebbe modificarmi il codice affinchè io recuperi sempre quella con la classe più alta?
Sono ben accette alternative al mio codice.

grazie

Davide



<?php

$content = file_get_contents('http://portale.fitet.org/risultati/new_rank/dettaglioatleta_unica.php?ATLETA=723553&ID_CLASS=176&ZU=1&AVVERSARIO=0');


$doc = new DOMDocument();
$doc->loadHTML($content);
$xpath = new DOMXPath($doc);

?>
<div style="width: 100%; height: 100%; background-image: url('http://adttsaronno.it/wp-content/uploads/2019/03/Sfondogioc.jpg'); padding: 20px 40px; border-radius: 10px;">
	<div class="fotoatleta">
		<img width="100%" src="https://adttsaronno.it/wp-content/uploads/2019/06/martinelli.jpg" />
	</div>
	<div class="parametri">
		<p class="textpar">
			<?php  
					$v = $xpath->query('//p[@class="titolo"]')[0];
					echo "Cognome e Nome:<br><span style='font-size:22px'>".trim(strip_tags(str_replace('&nbsp;','',$v->nodeValue)))."</span><br>";
			?>
		</p>
		<p class="textpar">
			<?php  
					$v = $xpath->query('//p[@class="style_scheda2"]')[3];
					echo "Settore Agonistico: ".trim($v->nodeValue)." <br>";
			?>
		</p>

		<p class="textpar">
			<?php  
					$v = $xpath->query('//p[@class="style_scheda2"]')[5];
					echo "Regione: ".trim($v->nodeValue)." <br>";
			?>
		</p>
		<p class="textpar">
			<?php  
					$v = $xpath->query('//p[@class="style_scheda2"]')[6];
					echo "Categoria e Punti: ".trim(str_replace('&nbsp;','',$v->nodeValue))." <br>";
			?>
		</p>
		<p class="textpar">
			<?php  
					$v = $xpath->query('//p[@class="style_scheda2"]')[10];
					echo "Record classifica: ".trim($v->nodeValue)." <br>";
			?>
		</p>
		<p class="textpar">
		<?php  
				$v = $xpath->query('//p[@class="classifica"]')[0];
				echo "Classifica: ".trim($v->nodeValue)." <br>";
		?>
		</p>
	</div>
	<div style="clear: both;"></div>
</div>

6 Risposte

  • Re: Problema con DOMXPath class

    Lo script mostrato è solo una piccola parte del codice usato da una presunta libreria installata sul tuo server.
    Suppongo archivia i dati però quando la classifica varia non li aggiorna e invece usa i vecchi dati.
    Come si chiama la libreria?
  • Re: Problema con DOMXPath class

    Questo è tutto il codice che utilizzo di php nella pagina, lo metto senza html ne css, Provalo:

    <?php

    $content = file_get_contents('http://portale.fitet.org/risultati/new_rank/dettaglioatleta_unica.php?ATLETA=594732&ID_CLASS=175&ZU=1&AVVERSARIO=0');

    $doc = new DOMDocument();
    $doc->loadHTML($content);
    $xpath = new DOMXPath($doc);



    $v = $xpath->query('//p[@class="titolo"]')[0];
    echo "Nome: ".trim(strip_tags(str_replace('&nbsp;','',$v->nodeValue)))." <br>";

    $v = $xpath->query('//p[@class="style_scheda2"]')[3];
    echo "Settore Agonistico: ".trim($v->nodeValue)." <br>";

    $v = $xpath->query('//p[@class="style_scheda2"]')[4];
    echo "Societa appartenenza: ".trim($v->nodeValue)." <br>";

    $v = $xpath->query('//p[@class="style_scheda2"]')[5];
    echo "Regione: ".trim($v->nodeValue)." <br>";

    $v = $xpath->query('//p[@class="style_scheda2"]')[6];
    echo "Punti: ".trim(str_replace('&nbsp;','',$v->nodeValue))." <br>";

    $v = $xpath->query('//p[@class="style_scheda2"]')[10];
    echo "Record classifica: ".trim($v->nodeValue)." <br>";

    ?>


    Puoi vederne l'esempio qui: http://doc90.altervista.org/test
  • Re: Problema con DOMXPath class

    Il mio problema sta proprio nel link nella variabile $content, perchè ogni qualvolta sul sito ufficiale aggiornano i dati del giocatore cambia la CLASS e incrementa di 1, non so come poter impostare il codice affinchè possa cambiare:
    portale.fitet.org/risultati/new_rank/dettaglioatleta_unica.php?ATLETA=594732&ID_ CLASS=175&ZU=1&AVVERSARIO=0
  • Re: Problema con DOMXPath class

    Ho capito purtroppo ti ho chiesto altro.
    Mi interessa il codice che sta in dettaglioatleta_unica.php poiché usa la query string ($_GET) per diversificare il risultato.
    Nel frattempo usa anche svariati browser per non avere falsi contenuti nella tua cache.
  • Re: Problema con DOMXPath class

    Io non posso accedere alla pagina dettaglioatleta_unica.php e quindi non posso recuperarne il codice, quella pagina è nell'FTP del portale FITET
  • Re: Problema con DOMXPath class

    Ciao scusa non ho notato fosse un domino esterno il problema è la url non il codice php, praticamente per essere veritiero dovrai sempre prima effettuare la ricerca per nome atleta per la data di tuo interesse e poi il risultato sarà come quello del dominio esterno .. devi simulare come se navighi manualmente e ciò significa non esiste un link univoco ma per lo più avrai un id univoco poiché lo devono memorizzare dentro al database..
    Questo tipo di codice spetta solo e unicamente a te oppure su commissione.
    Distinti saluti.
    http://portale.fitet.org/risultati/new_rank/dettaglioatleta.php?ATLETA=723553&ZU=0&AVVERSARIO=0&ID_CLASS=178
    Ad esempio l'ID è 723553.
Devi accedere o registrarti per scrivere nel forum
6 risposte