Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    77

    procedere con ciclo anche se la funzione è negativa

    ciao a tutti.
    sto provando a scrivere uno script con un ciclo che sfoglia le pagine del sito (id progressivo: sito.it/1.php, sito.it/2.php, ..) e mi restituisce l'elenco con i titoli delle pagine (tramite le espressioni regolari).
    a volte però ad un numero non corrisponde la pagina (manca ad es sito.it/3.php)
    lo script mi restituisce l'errore 404

    codice:
    Warning:  fopen(sito.it/3.php) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found  in script.php on line x
    come posso modificare la funzione in modo che, nel caso non trovi la pagina X, vada avanti con il ciclo con i numeri successivi e non si blocchi con l'errore?


    Codice PHP:
    function FetchPage($path)
    {
      
    $file fopen($path"r");
      if (!
    $file)
      {
        exit(
    "Errore");
      }
      
    $data '';
      while (!
    feof($file))
      {
        
    $data .= fgets($file1024);
      }
      return 
    $data;

    Grazie.

  2. #2
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    http://php.net/manual/en/function.file-exists.php

    Modifica il codice in modo che se il file funziona esegui lo script.
    A volte la soluzione a un problema è sempre la più semplice...

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    77
    grazie skjobax! però non funziona nel caso di url. ho fatto una veloce ricerca sul web e..
    A partire da PHP 5.0.0, questa funzione può essere utilizzata con alcuni URL wrappers. Fare riferimento a Appendice L per la lista di quali wrappers supportano le funzioni della famiglia stat().
    a grandi linee sarebbe stato perfetto..
    Codice PHP:
    for ($id 1$id <= 100; ++$id) {
    $url '/'.$id.'.php';
    if (
    file_exists($url)) {
        echo 
    "esiste - estrae titolo";
    } else {
        echo 
    "non esiste";
    }

    alternative?

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    77
    risolto con

    Codice PHP:
    $url 'http://www.sito.it/pagina';
    $handle = @fopen($url,'r');
    if(
    $handle !== false){
       echo 
    "$url esiste";
    } else {
       echo 
    "$url non esiste";

    grazie!

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.