Люди, у меня странная проблема...
Короче написал я парсер странички, все хорошо парсит... но есть проьлема.. дело в том что страничка это запоролена и авторизация идет по кукам...
вобщем я посылаю запрос на страничку...
PHP код:
$fp = fsockopen($hostname, 80, $errno, $errstr, 30);
// Проверяем успешность установки соединения
if (!$fp) echo "$errstr ($errno)<br />\n";
else
{
// Данные HTTP-запроса
$data = "\r\n\r\n";
// Заголовок HTTP-запроса
$headers = "GET $a HTTP/1.1\r\n";
$headers .= "Host: $hostname\r\n";
$headers .= "Cookie: adminu=; adminp=; adminsid=; $Namecuc1\r\n";
$headers .= "Content-type: application/x-www-form-urlencoded\r\n";
$headers .= "Content-Length: ".strlen($data)."\r\n\r\n";
$headers .= "Connection: close\r\n\r\n";
// Отправляем HTTP-запрос серверу
fwrite($fp, $headers.$data);
// Получаем ответ
while (!feof($fp))
{
$line .= fgets($fp, 1024);
}
fclose($fp);
}
echo (htmlentities($line))
далеше идет парсинт через preg_match и вывод все хорошо.. проблема в том что, скрипт имеет два поля куки и урл куда делать запрос и кнопку.... так вот если в крл вписать один урл и нажать кнопкуто все хорошо.. н оу меня таких ссылок оч много... я загнал в массив как мне тут советовали..
PHP код:
$file = '5.txt';
$array = file($file);
$c = count($array);
for ($i=0;$i<$c; $i++)
{
echo $array[$i].' ';
короче конечный кусок кода такой
PHP код:
$file = "$URL"; // в поле пусть до файлв
$array = file($file);
$c = count($array);
for ($i=0;$i<$c; $i++)
{
$a=$array[$i].' ';
$line = "";
// Устанавливаем соединение, имя которого
// передано в параметре $hostname
sleep(1);
$fp = fsockopen($hostname, 80, $errno, $errstr, 30);
// Проверяем успешность установки соединения
if (!$fp) echo "$errstr ($errno)<br />\n";
else
{
// Данные HTTP-запроса
$data = "\r\n\r\n";
// Заголовок HTTP-запроса
$headers = "GET $a HTTP/1.1\r\n";
$headers .= "Host: $hostname\r\n";
$headers .= "Cookie: adminu=; adminp=; adminsid=; $Namecuc1\r\n";
$headers .= "Content-type: application/x-www-form-urlencoded\r\n";
$headers .= "Content-Length: ".strlen($data)."\r\n\r\n";
$headers .= "Connection: close\r\n\r\n";
// Отправляем HTTP-запрос серверу
fwrite($fp, $headers.$data);
// Получаем ответ
while (!feof($fp))
{
$line .= fgets($fp, 1024);
}
fclose($fp);
}
echo (htmlentities($line))
// тут регулярки
}
так проблема в том, что, куки посылаються только ОДНОМУ урлу... все остальные ругаються на неавторизованность...
почему так и как исправить????
sleep() пробовал, не помогло....
еще одно заметил, если вставить один урл, то несколько запросов выполняются нормально.. тоетсь получаю N число нужных автветов, а если линки разные то уже только от одного..((
Выеслинось, что нужно для каждой ссылки формировать новый запрос... как это реализовать??