Добрый день. Пытаюсь проверить URL на существование, но нормально не получается. Код (Text): function url_exists($url){ return (bool)preg_match('~HTTP/1\.\d\s+200\s+OK~', @current(get_headers($url))); } Такая функция дает нормально проверять урлы типа Код (Text): http://www.example/script.php А урлы с ЧПУ никак Код (Text): http://www.example/forum/
Код (Text): $url = 'http://www.php.ru/'; $headers = get_headers($url, 1); return 'HTTP/1.1 200 OK' === $headers[0];
mrdez, к сожалению выдает тоже самое что и функция в первом посте. sobachnik, выдает на http://www.example/forum/ "HTTP/1.1 403 Forbidden", для http://www.example/forum/index.php - HTTP/1.1 200 OK
А если просто из браузера заходишь по тому самому адресу, который 403 Forbidden - то всё работает нормально?
Тогда посмотри, какие заголовки отправляет браузер и отправляй в своём запросе такие же. Скорее всего, там не хватает нужного User-Agent. Добавлено спустя 8 минут 13 секунд: Попробуй добавить перед вызовом функции следующий код: Код (PHP): $opts = array( 'http' => array( 'method' => 'GET', 'user_agent' => 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.10.229 Version/11.61' ) ); $default = stream_context_set_default($opts);