Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка регулярными выражениями, Получить данные, Обработка регулярными выражениями, Получ 
:(
    Опции темы
Denzil
  Дата 17.3.2010, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 14.3.2010

Репутация: нет
Всего: нет



Всем хорошего дня! Прошу помочь - это какой то парадокс
Вообщем я получаю данные с сайта и вывожу их на страницу


Код

function data($path,$host)
{
/*
$path путь к файлу скрипта, а так же передаваемые параметры
$host сграббливаемый хост (например, sasisa.ru)
*/
$fp = fsockopen($host, 80);
if (!$fp)
{
die('ошибка');
}
else
{
$out = "GET $path HTTP/1.0\r\n";
$out .= "Accept: image/gif, application/xhtml+xml, */*\r\n";
$out .= "Accept-Language: ru\r\n";
$out .= "Host: $host\r\n";

//прикинемся оперой-мини
$out .= "User-Agent: Opera/8.01 (J2ME/MIDP; Opera Mini/2.0.4509/1716; ru; U; ssr)\r\n";

$out .= "Cache-Control: no-cache\r\n";
$out .= "Connection: Close\r\n\r\n";

fwrite($fp, $out);
$headers = "";

while ($str = trim(fgets($fp)))
$headers .= "$str\n";

$body = "";

while (!feof($fp))
$body .= fgets($fp);
fclose($fp);
}
//возвращаем данные
return $body;
}



$host='qipstatus.ru';


if (empty($_SERVER['QUERY_STRING']))
{
//начальная позиция
$path='/qip_status.php';
}
else
{
//новые параметры
$path='//qip_status.php?'.$_SERVER['QUERY_STRING'];
}



$s=data($path,$host);

//обрабатываем (ВТОРОЙ ЭТАП)
$s=process($s);


header('Content-type:text/html;charset=utf-8');




function process($s)
{

return $s;
}


//Выводим
print "$s";


После этого данные нужно обработать и вытянуть инфу


Код

preg_match_all("/<TD CLASS=td_status>(.*)<\/TD>/U", $s, $massiv, PREG_PATTERN_ORDER);



function process($s)
{

return $s;
}


И вот тут парадокс. Данные, как вы поняли, находятся между тегами <TD CLASS=td_status></td>

Вот для примера, кусок информации, по которому регулярка успешно вытягивает инфу

Код

///Пример, который работает
$s = " 
<TD CLASS=td_status>вфыгнапшыфгва</TD>  asdfasdfasdf</td> блабла   <TD CLASS=td_status>12134ца</TD>
";


Этот пример записывает в массив результат.
А вот если обрабатывать полученную по сокету html-информацию, то ничего не работает.


Код

print_r($massiv[0]); 
print "<br>";
print_r($massiv[1][0]); 
print "<br>";
print_r($massiv[1][1]); 


Я получаю только array
Скажите, в чем глюк?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0617 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.