Здравствуйте! 2 дня уже не могу нормально сделать.. сокеты, разные темы читал в интете.. Не надо писать сюда сообщения плана "fsockopen" в виде ссылки на опиание функции. Тема такая: есть массив с ссылками, надо каждую ссылку прогнать и вытаскивая тайтл, сравнивать его с '404 NOt found' Ибо сайт на битриксе, и статус страниц всех "200 ОК". Заранее спасибо за помощь..
делал же, вроде. http://php.ru/forum/viewtopic.php?t=13398 не довёл до ума? PHP: <?php $page = 'phpinfo.html'; if ($f = fsockopen('php.ru', 80)) { fputs($f, "HEAD /$page HTTP/1.1\r\n"); fputs($f, "Host: php.ru\r\n"); fputs($f, "Connection: Close\r\n\r\n"); $str = fgets($f, 1024); echo 'Страница '.$page. ((!strpos($str,'404'))?' ':' не ').'существует'; fclose($f); } ?> цикл сам сделаешь?
Luge, да у меня просто $page в другой кодировке было.. как перевест нормально не наш способа. спасибо большое за помощь. цикл - построю..
PHP: $link = $arURL[10]['LINK']; $arLink = explode('site.ru/', $link); $page = $arLink[1]; echo $page; if ($f = fsockopen('www.site.ru', 80)) { fputs($f, "HEAD /$page HTTP/1.1\r\n"); fputs($f, "Host: [url=http://www.site.ru]www.site.ru[/url]\r\n"); fputs($f, "Connection: Close\r\n\r\n"); $arSock = array(); while (!feof($f)) { $arSock[] = fgets($f, 1024); } fclose($f); echo "<pre>"; print_r($arSock); echo '</pre>'; } у меня получается так, что если есть страница, то массив выводиться большой, каунт больше 8, а елси страницы нет, то каунт 8. Вот так я и определяю страница есть или нет. но трудность опять всё та же. PHP: fputs($f, "HEAD /$page HTTP/1.1\r\n"); каунт массива меньше 8, а если подставим значение $page в ручную: PHP: fputs($f, "HEAD /about/form.php HTTP/1.1\r\n"); то выводиться массив, в котором каунт больше 8 (страница существует) ох :\ Если сравнить md5 хэши, $page (сюда значение из массива, который формируется из file.xml (в UTF-8 кодировке)) и значение переменной $page, то хэши разные. Есть идеи у кого-нибудь?
мм.. а всю страницу: @file('http://*/8.php'), а потом имплоде. у меня такое не работает. как ещё можно?
Помогите, добрые кодеры как ещё можно вытащить страницу полностью и извлечь <title>. даже просто строку тайтла вытащить эту, а регулярку я сам сделаю..
http://php.net/fopen http://www.php.net/file_get_contents любой из этих функций можно получить содержимое удалённой страницы. Но если в php.ini allow_url_fopen выключен, то ничего не получится.