[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Парсинг HTML
Страницы: 1, 2, 3, 4
killer8080
Цитата (Creater @ 10.12.2012 - 15:03)
Мне нужно же получать этот код как-то. А в самой странице таких таблиц много. Как мне записывать в str именно то, что нужно ?

регулярка выловит все что подходит под шаблон, сколько бы их там не было на странице.
Creater
Следую вашим советам написал следующий скрипт:

<?php
$content= file_get_contents('ссылка на сайт');
preg_match_all("#[\w\d]{2,}\:{1}[\w\d]{2,}\:{1}[\w\d]{2,}\:{1}[\w\d]{2,}\: {1}[\w\d]{2,}\:{1}[\w\d]{2,} #sU", $content, $macs);

echo '<pre>' . print_r($macs, 1) . '</pre>';
?>

выводится:
Array
(
[0] => Array
(
)

)

то есть он не отлавливает ничего. В чём может быть проблема ?
killer8080
Цитата (Creater @ 10.12.2012 - 15:34)
Следую вашим советам написал следующий скрипт:

это не мой совет, я давал такую регулярку
'#(?:[a-f\d]{2}:){5}[a-f\d]{2}#i'

и смотреть нужно так
echo '<pre>'.htmlspecialchars(print_r($maсs, 1)).'</pre>';

Цитата (Creater @ 10.12.2012 - 15:34)
то есть он не отлавливает ничего. В чём может быть проблема ?

в чем угодно, например контент в кодировке utf-8, тогда нужен модификатор u, или контент содержит не то под что писалась регулярка, в слепую можно только гадать.
Creater
Ссылка на страницу https, а не http, может в этом дело?
Для полноты картины выкладываю всю страницу целиком, вот ссылка:
http://rghost.ru/42142511
killer8080
Цитата (Creater @ 10.12.2012 - 15:51)
Ссылка на страницу https, а не http, может в этом дело?

ну так выведи
echo '<pre>'.htmlspecialchars($content).'</pre>';

и посмотри что там
killer8080
Цитата (Creater @ 10.12.2012 - 15:51)
Для полноты картины выкладываю всю страницу целиком, вот ссылка:http://rghost.ru/42142511

и где там мак адреса?

UPD а вижу, ну там проблем вообще никаких нет, все должно работать.
Creater
Огромное спасибо вам за помощь, но скрипт
<?php

$content= file_get_contents('ссылка');

preg_match_all('#(?:[a-f\d]{2}smile.gif{5}[a-f\d]{2}#i', $content);

echo '<pre>'.htmlspecialchars($content).'</pre>';

?>

не ввыводит на экран ничего.
Zzepish
Игорь_Vasinsky
?: - это значит, что под значение в скобках () не будет выделятся отдельная ячейка памяти)))
Иначе его можно было бы вывести таким методом: \\1
killer8080
Цитата (Creater @ 10.12.2012 - 16:56)
не ввыводит на экран ничего.

var_dump($content);
Цитата (Creater @ 10.12.2012 - 15:51)
Ссылка на страницу https, а не http, может в этом дело?

Скорей всего не установлен Open SSL
Creater
var_dump($content) возвращает bool(false)
Creater
Open SSL установлен:
OpenSSL support enabled
OpenSSL Library Version OpenSSL 0.9.8r 8 Feb 2011
OpenSSL Header Version OpenSSL 0.9.8r 8 Feb 2011
killer8080
Цитата (Creater @ 11.12.2012 - 14:22)
var_dump($content) возвращает bool(false)

включи отображение ошибок
Creater
Включил, вот, что получилось:
Warning: file_get_contents(здесь ссылка): failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized in C:\inetpub\wwwroot\Test\htmlparser.php on line 13

на 13-ой строке:
$content= file_get_contents('ссылка');
Creater
Проблему с доступом решил через cURL:
<?php
function file_get_contents_curl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}

$content= file_get_contents_curl('ссылка');

preg_match_all('#(?:[a-f\d]{2}smile.gif{5}[a-f\d]{2}#i', $content, $macs);

echo '<pre>' . print_r($macs, 1) . '</pre>';

?>

При выполненении этого скрипта никаких ошибок не обнаруживается, но он выводит:
Array
(
[0] => Array
(
)

)

Следовательно регулярка не отрабатывает.
killer8080
Цитата (Creater @ 11.12.2012 - 15:15)
Следовательно регулярка не отрабатывает.

Следовательно учимся читать ошибки
Цитата
HTTP request failed! HTTP/1.1 401 Unauthorized

сервер требует авторизацию, где в твоем коде она есть?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.