Всем хорошего дня! Вообщем я получаю данные с сайта и вывожу их на страницу
Код | 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>
Вот для примера, кусок информации, по которому регулярка успешно находит инфу
Код | ///Пример, который работает $mnogoteksta = " <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
Скажите, в чем глюк?
|