Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : vérifier si un lien est mort [ Divers / Général ] (zut69)

samedi 22 novembre 2008 à 18:26:05 | vérifier si un lien est mort

zut69

Bonsoir,

Sur mon site, j'ai une page avec pleins de liens externes vers mes partenaires. Le souci, c'est qu'il peut arriver qu'un des liens soit mort alors j'aimerai pouvoir vérifier si la cible existe.
J'ai écrit une fonction, mais elle semble ne fonctionner qu'avec des fichiers de code (html, php, asp, ...), alors que mes liens pointent principalement sur des pdfs.

function lien_mort($lien) // retourne false si lien mort
{
    $file = @fopen($lien, 'r');
    if ($file) return false;
    else return true;
}

Est-ce que quelqu'un saurait comment vérifier si un pdf existe? J'ai pensé peut-être au file_exists() ou encore en récupérant les headers du fichier, mais je ne sais pas quelle méthode serait la plus pertinente et laquelle fonctionnerait...

dimanche 23 novembre 2008 à 00:26:23 | Re : vérifier si un lien est mort

gibozsec

Bonjour,

la méthode que tu utilise fonctionne, je l'ai testée. Il doit y avaoir un problème à un autre endroit.

Peux tu donner plus de précisions ?

Grrrrrrrrrrr

dimanche 23 novembre 2008 à 01:45:49 | Re : vérifier si un lien est mort

zut69

Merci pour ta réponse et en effet après plusieurs tests, j'ai remarqué que ce n'était pas les pdf qui posaient problème, mais simplement le fait que je soumette des urls de fichiers distants à ma fonction et c'est ça qu'il aime pas !
Alors comment faire pour que par exemple: lien_mort("http://www.google.fr") me retourne false?

voici les résultats de mes tests:

lien_mort("index.php") -> false
lien_mort("test.pdf") -> false
lien_mort("http://www.monsite.com/test.pdf") -> true
lien_mort("http://www.autre-site.com/test.pdf") -> true
lien_mort("http://www.google.fr") -> true

lien_mort("http://ce-site.n-existe-pas.com/prout/zut.tjz") -> true

Voilà, le résumé de mes tests. En résumé, ce qui est en rouge et ce qui ne retourne pas ce que je voudrais...
Merci de ton aide,

FF

PS: je vois que j'avais fait une erreur dans le commentaire de la fonction que j'ai posté:
function lien_mort($lien) // retourne true si lien mort
Je le signale pour éviter toute confusion...

dimanche 23 novembre 2008 à 10:52:47 | Re : vérifier si un lien est mort

coucou747

salut

tu peux utiliser curl pour tester si t'as une erreur 404 ou autre chose.

dimanche 23 novembre 2008 à 13:23:32 | Re : vérifier si un lien est mort

gibozsec

Réponse acceptée !
Dans le php.ini tu trouveras allow_url_fopen. C'est un paramètre qui défini si tu peux utiliser les fonctions de manipulation de fichier sur des url.

Visiblement il est désactivé sur ton serveur, il suffit de l'activer pour que ta fonction marche correctement.

Grrrrrrrrrrr

dimanche 23 novembre 2008 à 14:52:24 | Re : vérifier si un lien est mort

zut69

Salut, ok merci beaucoup tout marche, tout est ok :-)



Cette discussion est classé dans : file, liens, lien, vérifier, mort


Répondre à ce message

Sujets en rapport avec ce message

Comment vérifier un lien ? [ par MaTHieU ] Salut, Je voudrais savoir comment vérifier un lien... Par exemple : http://www.monsite.fr/fichier.zip Si le fichier est présent ça marque "OK" Si le l [PHP] Manipulation de chaines de caractères (les liens...) [ par Alcmeon ] Bonjour Tlm,je suis devant un problème et je ne comprend vraiment pas :J'ai des articles stocké dans une base de données, il peut y avoir desliens dan tester un lien mort [ par guiguimac ] rebonjour,voici ma question reformulée :j'ai une base de donnée de liens et j'aimerai pouvoir lancer un script php qui détecterai si une URL est un li un vrerificateur de liens [ par vovinamfire ] salutqql' un pourrait m'aider pour ce scipt de verfication de lien, qui ce trouve sur un autre serveur que mon site ?$yes = "http://perso.wanadoo.fr/* Question sur les liens [ par jejeduweb ] Bonjour, je débute en php et la question que je vai vous poser vous semblera probablement stupide.J'aimerai savaoir qu'elle est l'utilité des liens qu liens caché..... [ par engelho ] Bon, je vais avoir l'air un peu idiot, mais là, j'ai un problème...J'utilise une structure conditionnelle (si alors sinon.) qui, selon le résultat me Desactiver des liens hypertexte en cliquant sur un lien [ par merlin_88 ] bonjour, je suis absolument debutant et je decouvre la realisation de pages (je n'ai jamais cree de site mais peut etre un jour...)j'aimerai savoir s' Proteger ses liens ? [ par lavren ] Je vais exposer le projet parfait que je cherche à faire :Je souhaiterai proposer en téléchargement des fichiers mais que mes visiteurs ne sachent pas liens... [ par l0sth34d ] je voudrais ne laisser aucune trace des liens qui on été clické sur mon site... je veut dire... lorsque je navigue.. supposon que je vais surhttp://12 Liens en php [ par scarium ] Bonjour à tous,Débutant en php, je develloppe un site uniquement pour apprendre ce langage, je suis confronté à un problème d'entrée de jeu:-créer un


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.