dtecter si une url n'existe pas ou est 404

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : dtecter si une url n'existe pas ou est 404

Re: dtecter si une url n'existe pas ou est 404

par AB » 18 oct. 2010, 17:53

http://www.php.net/manual/fr/function.g ... .php#97684
<?php
function get_http_response_code($theURL) {
    $headers = get_headers($theURL);
    return substr($headers[0], 9, 3);
}
?>
perso je mettrais un @ devant le get_headers...

Re: dtecter si une url n'existe pas ou est 404

par stealth35 » 18 oct. 2010, 17:47

y'a un du forum qu'a fait ca (aosix je crois) faudrait retourvé

Re: dtecter si une url n'existe pas ou est 404

par noze1st » 18 oct. 2010, 17:41

alors là c'est vraiment q'une piste ;-)
merci quand même stealth35.
Je vois l'idée je crois mais pour coder tout ça...
Je pense qu'il faut aller chercher dans le header si la chaine [404] est présente dans le title (je suppose).
Je galère grave avec les expression régulière alors un p'ti coup de main :priere:

Re: dtecter si une url n'existe pas ou est 404

par stealth35 » 18 oct. 2010, 16:22

dtecter si une url n'existe pas ou est 404

par noze1st » 18 oct. 2010, 16:21

bijour,
$adresse="adresse à tester";
function url_exists($adresse)
{
    $F=@fopen($adresse,"r");

    return ($F)? 1 : 0;

}
if (url_exists($adresse) == 1){

echo 'ok';
}
else
{echo 'pas ok';
}
J'utilise ce p'ti bout de code glané sur le web pour tester la validité d'une url. IL fonctionne seulement les page d'erreur 404 passe évidemment pour des url valide.
Y'a t-il un moyen de tester si une url non seulement est valide mais n'est pas non plus une age d'erreur 404 ?
Merci de me mettre sur la piste : j'ai lu dans un forum qq'1 qui disait qu'il fallait tester la chaine 404 mais comment ??