[PHP] Tester URL

Discussion dans 'Web, design' créé par WaKaaN, 7 Mai 2008.

Statut de la discussion:
Fermée.
  1. Offline
    WaKaaN JcQL
    Bonjour à tous,

    J'ai un fichier txt avec toutes des URL (~2300) à des formats différents (http://www.exmaple.com , www.example.net , 210.0.25.52) .

    Il y a une adresse par line.

    Je souhaiterais que toutes ces adresses soit vérifiées l'une après l'autre.

    J'ai beau essayé des dizaines de trucs différents, aucuns ne marche... (même avec 10 adresses)

    Mes problèmes sont les timeouts, les délais pour traiter une seule adresse:gne:

    Donc help me à trouver la fonction is_valid_url... :p




    PHP:

    function is_valid_url($url) {
    if 
    ok = return true;
    if 
    nok = return false;
    }



    $fichier fopen("test.txt","r");


    echo 
    '<table border="1">';
    while(!
    feof($fichier)) {
        
    $link fgets($fichier);
         
    $link trim($link);

        if(
    is_valid_url($link)) {
            echo 
    '<tr bgcolor="green"><td>';
            echo 
    'Oui';
        } else {
            echo 
    '<tr bgcolor="red"><td>';
            echo 
    'Non';
        }
        echo 
    '</td><td>' $link.'</td></tr>';
    }
    fclose($fichier);
    echo 
    '</table>';
    WaKaaN, 7 Mai 2008
    #1
  2. Offline
    Tifox ou pas
    Je sais pas tester ce que je vais raconter ici, donc je peux me planter, mais :

    Un site peut parfois mettre plusieurs secondes avant de répondre. Donc si tu veux tester toutes tes 2300 url dans un seul script, il faut que le timeout php de ton serveur soit vraiment gros. D'après la doc de fsockopen, il y a moyen de définir le timeout, mais même avec une valeur raisonnable, ton script pourra tourner des heures.

    Personnellement, je pense que je ferai ça en AJAX, avec une requete par url (ou groupe d'url) à tester.
    Tifox, 7 Mai 2008
    #2
  3. Offline
    DaBeast Elite
    Si tu es en php 5 tu peux utiliser la fonction get_headers(). Puis analyser ce qu'elle te renvoye pour voir si la page existe ou pas.
    DaBeast, 7 Mai 2008
    #3
  4. Offline
    WaKaaN JcQL
    Je vais aller checker un peu get_headers() mais mon probleme est que si j'augmente mon timeout php, il y a le timeout de firefox qui, j'ai l'impression, stoppe ma requete...
    WaKaaN, 7 Mai 2008
    #4
  5. Offline
    Tifox ou pas
    Pour moi, tu ne sais de toute façon pas t'en sortir si tu veux checker toutes les url en une seule requête, ce sera trop long. Je ne sais pas quel est le but de la page web (monitoring constant, juste savoir ce qui ne va pas, savoir si tel et tel serveur sont online, ....), mais je pense que tu vas devoir approfondir un peu plus l'analyse des besoins pour trouver une solution valable.
    Tifox, 7 Mai 2008
    #5
  6. Offline
    WaKaaN JcQL
    Mwi...

    En fait, à l'origine c'est un fichier excel qui contient toutes des adresses internet accumulées depuis pas mal de temps...

    Seulement une majorité de ces adresses ne plus valides. Alors plutot que de vérifier les liens un à un, je voulais automatisé la chose.

    Maintenant, existe-t-il une fonction semblable dans excel 2007 ? (Meme du VB est bienvenue)
    WaKaaN, 7 Mai 2008
    #6
  7. Offline
    ozilrit Touriste
    Fais tourner ton script en cli.
    ozilrit, 7 Mai 2008
    #7
  8. Offline
    WaKaaN JcQL
    Sais-tu préciser ce qu'est le "cli" ?

    Mais pour mon probleme j'ai trouvé la solution ici.

    Ce n'est pas de la programmation, mais à quoi se casser la tete quand d'autres l'ont fait et mieux que nous :p.

    Exportable en txt et réimportable en Excel avec les virgules qui sépare lien,code erreur, erreur.

    Thx à tous :)
    WaKaaN, 7 Mai 2008
    #8
  9. Offline
    ozilrit Touriste
    En ligne de commande :
    $ php -f script.php
    ozilrit, 7 Mai 2008
    #9
  10. Offline
    WaKaaN JcQL
    aaah wi, c vrai, c'est pas con....

    Thx pour l'info :)
    WaKaaN, 7 Mai 2008
    #10
  11. Offline
    ozilrit Touriste
    De rien. =]
    ozilrit, 7 Mai 2008
    #11
Statut de la discussion:
Fermée.