привет всем.Мне нужно получить содержимое нескольких страниц из одного домена.Теперь для каждой страницы я использую соединение fsockopen и получаю содержимое страницы следующим образом:
<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET /page1.html HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
fgets($fp, 128);
}
fclose($fp);
}
?>
Мой сценарий тратит время при переподключении к домену, чтобыполучить вторую страницу.Мне было интересно, если возможно использовать одно соединение и получить несколько страниц, например:
<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET /page1.html HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
fgets($fp, 128);
} $out = "GET /page2.html HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
fgets($fp, 128);
}
fclose($fp);
}
?>
Но этот метод возвращает страницу page1.html два раза, Я не знаю почему.
Я пытался использовать: Соединение: сохранить в живых, или HTTP / 1.0, но в этом случае я ничего не получал от сервера (бесконечное время выполнения моего скрипта).
Любое предложение, чтобы решить эту проблему?
Спасибо!