Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    60

    Trovare i link presenti in una pagina

    Ciao a tutti ho realizzato questo script che mi permette di trovare tutti i link in una pagina, o almeno cosi dovrebbe fare.
    Vi spiego il mio problema:
    Lo script legge i link presenti in un file .txt, segue il link ad esempio "http://www.miosito.com" e ne dovrebbe copiare tutti i link presenti nella pagina come: "http://www.miosito.com/contatti.php", "http://www.miosito.com/info.php" ecc.
    Il problema è che mi trova solo il primo link presente nella pagina http://www.miosito.com e non mi trascrive gli altri.

    Questo è il codice:
    Codice PHP:
    $file_handle fopen("../db/url_segnalati.txt""rb");

    while (!
    feof($file_handle) ) {

    $line_of_text fgets($file_handle);
    $parts explode("\r\n"$line_of_text);
    $url = array($parts[0]);
    foreach(
    $url as $sito){

    $handle fopen($sito"rb");
    $contents stream_get_contents($handle);

    preg_match ('/href="([^`]*?)"/'$contents$matches_url);
    $write=fopen ("../db/url_segnalati.txt","a+");
    $con =fwrite ($write"\r\n".$matches_url[1]);
    }

    Qualcuno avrebbe la pietà di dirmi come devo fare per fargli "raccogliere" tutti i link e non solo il primo?
    Se mi sono spiegato male chiedete pure chiarimenti.
    Grazie dell'aiuto!

  2. #2
    Iniziamo ad analizzare il tuo script:
    perchè le seguenti istruzioni?
    Codice PHP:
    $parts explode("\r\n"$line_of_text); 
    $url = array($parts[0]); 
    foreach(
    $url as $sito){ 
    cioè perchè esegui lo spit con il carattere di fine riga? se non specifichi il secondo parametro della funzione fgets(), tale funzione ti restituiesce tutta la riga. Quindi
    Codice PHP:
    $parts explode("\r\n"$line_of_text); 
    è inutile

    Perchè
    Codice PHP:
    $url = array($parts[0]); 
    e poi vai ad iterare l'array?
    cioè ti crei un array di un elemento e poi lo iteri?

    Poi al posto di fare
    Codice PHP:
    while (!feof($file_handle) ) { 

    $line_of_text fgets($file_handle); 
    io farei
    Codice PHP:
    while($line_of_text fgets($file_handle)){ 
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3
    $parts = explode("\r\n", $line_of_text);

    recupera come array ogni riga del file di testo
    $url = array($parts[0]);

    $parts[0] ti da la prima riga , quindi ti legge solo quella

    cmq c'è una funziona apposta per leggere riga per riga i file, fai così:

    $dati=@file("dati.txt") or die("Non ho trovato il file da leggere");

    foreach ($dati as $dato) {


    ho scritto con zero risposte
    Un tardo hegeliano di Busalla / allevava un gorilla nella stalla
    citando Adorno nell notti chiare / finché il primate stanco di ascoltare
    lo strangolò con una sciarpa gialla Dillo Con Parole Sue

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.