РНР:регулярные выражения

12
I
На сайте с 26.04.2008
Offline
137
1734

Здравствуйте.

Прошу прощения, если не в правильную ветку пишу.

Подскажите пожалуйста регулярное выражение на РНР, которое бы спарсило контент от

<body bottommargin="6" leftmargin="6" topmargin="6" rightmargin="6" marginwidth="6" marginheight="6">

до

<div align="right">

Заранее огромное человеческое спасибо.

Linkpusher
На сайте с 28.12.2007
Offline
176
#1

(.*) всё просто :)

как-то так, вроде не накосячил :):

"/<body([^>]+)>(.*)<div align=\"right\">/"

$2, соответственно.

Точу ножи. Буквально. Есть отзывы. Заказать заточку в МСК и Подольске можно через Телеграмм.
I
На сайте с 26.04.2008
Offline
137
#2
toxic steel:
(.*) всё просто :)

Напишите пожалуйста полностью строку регулярного выражения :)

Linkpusher
На сайте с 28.12.2007
Offline
176
#3

Iwashka, вот как раз этим и занимался :)

I
На сайте с 26.04.2008
Offline
137
#4
$text=file_get_contents($url);
$text1=preg_match("/<body([^>]+)>(.*)<div align=\"right\">/" , $text, $preg);
$text2=$preg[1];
echo $text2;

Пишу так - ничего не вижу на экране.

Linkpusher
На сайте с 28.12.2007
Offline
176
#5
Iwashka:
$text1=preg_match("/<body([^>]+)>(.*)<div align=\"right\">/" , $text, $preg);

лишнее. и в $preg[1] сохранялись марджины. выводите содержимое массива целиком с помощью print_r(), чтобы ленно глянуть куда чего посохранялось.

preg_match("/<body([^>]+)>(.*)<div align=\"right\">/" , $text, $preg);
- достаточно. проверил, работает.

можно сделать так (именованые сохранения, всё такое :)):

$incoming = ... ;


$regexp = "/<body[^>]+>(?P<data>.*)<div align=\"right\">/i";

preg_match($regexp, $incoming, $content);

проверяем:

echo '<pre>';

print_r($content);
echo '</pre>';

содержимое доступно в

$content['data']
I
На сайте с 26.04.2008
Offline
137
#6

На экране вижу

Array
(
)

Попробуйте поэкспериментировать

$url="http://edimdoma.ru/recipt_print.php?idr=1";
$incoming=file_get_contents($url);
Linkpusher
На сайте с 28.12.2007
Offline
176
#7

Iwashka, дык табуляцию убрать нуно :)

после file_get_contents:

$incoming = ereg_replace("\t|\n|\r", '', $incoming);
I
На сайте с 26.04.2008
Offline
137
#8

Вставил , всё равно

Array
(
)
Linkpusher
На сайте с 28.12.2007
Offline
176
#9

значит где-то, чего-то закралось, ибо я смотрю на то, что требовалось получить.

вот код целиком, прямиком с файла:

<?

$url = "http://edimdoma.ru/recipt_print.php?idr=1";

$incoming = file_get_contents($url);

$incoming = ereg_replace("\t|\n|\r", '', $incoming);

$regexp = "/^(.*)<body[^>]+>(?P<data>.*)<div align=\"right\">/i";

preg_match ($regexp, $incoming, $content);

echo $content['data'];
?>

это же ваш сайт, правда? 🚬

I
На сайте с 26.04.2008
Offline
137
#10

Всё равно, до спарсенного контента, в самом начале

Array
(
)
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий