| |
|
|
| | У меня проблема: почему-то некоторые сайты выдают 301 ошибку при попытке получить контент из них. К примеру: http://soft.mail.ru/nforum/ . Есть подозрение что не полностью складываю http заголовок. Хотя этим же кодом 90% других страниц скачивает.
Вот код:
$fp = fsockopen("soft.mail.ru", 80, $errno, $errstr, 30);
if (!$fp) {
// die;
} else {
$out = "GET /nforum HTTP/1.1\r\n";
$out .= "Host: soft.mail.ru\r\n";
$out .= "User-Agent: Microsoft Internet Explorer/Mozilla-Spoofer (compatible; MSIE 6.0; Windows NT 5.1)/r/n";
$out .= "Connection: Close\r\n\r\n";
echo("($out)");
fwrite($fp, $out);
$i_st=0;
while (!feof($fp)) {
$buff = fgets($fp, 1024);
if ($i_st==0 && strpos($buff, 'HTTP/1.1 404')!==FALSE) {
$is_error = 404;
break;
}
if ($is_html) $content .= $buff;
if (!$is_html && preg_match('/^(\<\!DOCTYPE|\<HTML)/ism',$buff)) $is_html = TRUE;
$i_st++;
}
fclose($fp); | |
| |
|
|
| |
|
|
| |
для: loddy
(20.06.2006 в 11:36)
| | | Мне кто то говорил что надо полностью путь писать
$out = "GET http://soft.mail.ru/nforum HTTP/1.1\r\n"; | |
| |
|
|
| |
|
|
| |
для: himic
(20.06.2006 в 14:13)
| | | Нет, так писать не нужно. | |
| |
|
|
| |
|
|
| |
для: loddy
(20.06.2006 в 11:36)
| | | А что такое 301? 301 - это Moved Permanently. В заголовках должно быть указано, куда именно он "Moved". Браузер показал, что сюда: http://soft.mail.ru/nforum/
$out = "GET /nforum/ HTTP/1.1\r\n";
|
| |
| |
|
|
| |
|
|
| |
для: loddy
(20.06.2006 в 11:36)
| | | 301 код состояния - это не ошибка - это редирект, нужно загружать заголовки - смотреть, куда посылают и следовать новому URL. | |
| |
|
|