Visualizzazione dei risultati da 1 a 3 su 3

Discussione: funzione di esistenza

  1. #1

    funzione di esistenza

    esiste una funzione che mi da come output un booleano per l'esistenza di una determinata pagina? la pagina e fuori dal mio server e non ho la pass quindi non basta la funzione "file_exists" mi potete aiutare? grazie

  2. #2
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Non esiste ed e' piuttosto complessa da fare (almeno fino al PHP4, nel 5 non so).

    Essenzialmente se te la vuoi fare a mano devi simulare in tutto e per tutto una connessione HTTP verso il server, richiedendo la pagina e aspettando il codice di ritorno. Se e' HTTP 200 OK, la pagina esiste, se e' HTTP 404 NOT FOUND no.

    C'e' un discreto lavoro da fare: prima devi dividere la stringa e trovare il dominio, collegarti con una fsockopen() alla porta 80 di quel dominio, mandare una richiesta di GET nomepagina.html e poi aspettare la risposta.

  3. #3
    ecco qua, direttamente dalla documentazione
    Codice PHP:
    <?php
       
    /*
       * @return boolean
       * @param  string $link
       * @desc  Überprüft die angegeben URL auf Erreichbarkeit (HTTP-Code: 200)
       */
       
    function url_validate$link )
       {       
           
    $url_parts = @parse_url$link );

           if ( empty( 
    $url_parts["host"] ) ) return( false );

           if ( !empty( 
    $url_parts["path"] ) )
           {
               
    $documentpath $url_parts["path"];
           }
           else
           {
               
    $documentpath "/";
           }

           if ( !empty( 
    $url_parts["query"] ) )
           {
               
    $documentpath .= "?" $url_parts["query"];
           }

           
    $host $url_parts["host"];
           
    $port $url_parts["port"];
           
    // Now (HTTP-)GET $documentpath at $host";

           
    if (empty( $port ) ) $port "80";
           
    $socket = @fsockopen$host$port$errno$errstr30 );
           if (!
    $socket)
           {
               return(
    false);
           }
           else
           {
               
    fwrite ($socket"HEAD ".$documentpath." HTTP/1.0\r\nHost: $host\r\n\r\n");
               
    $http_response fgets$socket22 );
              
               if ( 
    ereg("200 OK"$http_response$regs ) )
               {
                   return(
    true);
                   
    fclose$socket );
               } else
               {
    //                echo "HTTP-Response: $http_response
    ";
                   return(false);
               }
           }
       }
    ?>
    basta chiamare la funzione con la url da verificare e prenderne il booleano restituito

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.