<?php /* http://www.gamerz.be/programmation-php-/t-php-tester-url-215751.html http://www.phpsources.org/scripts92-PHP.htm http://perishablepress.com/press/2006/12/18/automatic-language-translation-methods/ http://www.comscripts.com/scripts/php.babelfish-translator.2039.html */ /* article d'origine de la fonction http://www.pckult.net/index.php?Itemid=7&id=806&option=com_content&task=view test que le http port 80 pas de ftp,https ... */ function test_url($url){ $url = @parse_url($url); if (!$url) { return false; } $url = array_map('trim', $url); $url['port'] = (!isset($url['port'])) ? 80 : (int)$url['port']; $path = (isset($url['path'])) ? $url['path'] : ''; if ($path == '') { $path = '/'; } $path .= (isset($url['query'])) ? "?$url[query]" : ''; if (isset($url['host']) AND $url['host'] != gethostbyname($url['host'])) { if (PHP_VERSION >= 5) { $headers = get_headers("$url[scheme]://$url[host]:$url[port]$path"); } else { $fp = @fsockopen($url['host'], $url['port'], $errno, $errstr, 30); if (!$fp) { return false; } fputs($fp, "HEAD $path HTTP/1.1\r\nHost: $url[host]\r\n\r\n"); $headers = fread($fp, 4096); fclose($fp); } $headers = (is_array($headers)) ? implode("\n", $headers) : $headers; return (bool)preg_match('#^HTTP/.*\s+[(200|301|302)]+\s#i', $headers); } return false; } if(isset($_POST['url_test']) && !empty($_POST['url_test']) && $_POST['submit_bt']=="Tester" ){ $url='http://'.$_POST['url_test']; if (test_url($url)) { echo $url.' est valide ! '; echo '[javascript:history.back(); Recommencer un test]'; /* choisir un type de redirection /* immediat header( 'Location:'.$url); */ /* attendre 3 secondes header( 'refresh: 3; url='.$url); echo 'Bonne viste attendre 3 secondes... '; */ /* header( 'refresh: 0; url='.$url); echo 'Bonne viste ! '; */ /* attendre 2 secondes echo '<meta http-equiv="refresh" content="2;url='.$url.'">'; */ } else { echo 'Url inconnue ! '; echo '[javascript:history.back(); Recommencer un test]'; } } else { echo ' <form action="" method="post"> http:// </form> '; } ?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questioncar j'ai un header qui s'occupe de ça si la page n'existe pas..
par exemple si j'ai un lien http://monsite.com/blabla je dois tester si http://monsitetraduit.com/blabla existe sauf que si cette page n'existe pas elle est redirigée via header à l'index http://monsitetraduit.com/
$url = 'http://monsitetraduit.com/blabla'; $rContext = stream_context_create(array( 'http' => array( 'timeout' => 1, 'max_redirects' => 1 ) ) ); if(false === @fopen($url, 'r', null, $rContext)) { // la page existe } else { // la page n'existe pas }