|
|
|
|
<html>
<DIV style="PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; PADDING-TOP: 7px"> <P align=center><A href="http://love.in-alushta.ru/news_5575.html"><STRONG>Читать далее</STRONG> [10]</A></P></DIV>
</ntml>
|
Вот так будет правельно:
<?
if (preg_match_all ("#<.{1,2} DIV style='PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; PADDING-TOP: 7px'><P align=center><a href='([^']*)'><STRONG>(.*)</STRONG></a></p></div>#isU", $text, $regs))
?>
|
и что тут означает #isU ? | |
|
|
|
|
|
|
|
для: dima_s_d_s
(28.10.2006 в 19:28)
| | i -- не учитывать регистр букв
s -- чтобы работало при переносе строки
U -- инверсия "жадности" (чтобы реагировал не первый закрывающий тег) | |
|
|
|
|
|
|
|
для: ЯR
(28.10.2006 в 20:02)
| | Сенкс.
А где можно почитать? | |
|
|
|
|
|
|
|
для: ЯR
(28.10.2006 в 20:02)
| | а преобразование я сделал правильно?
<?
if (preg_match_all ("#<.{1,2} DIV style='PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; PADDING-TOP: 7px'><P align=center><a href='([^']*)'><STRONG>(.*)</STRONG></a></p></div>#isU", $text, $regs))
?>
|
| |
|
|
|
|
|
|
|
для: dima_s_d_s
(28.10.2006 в 20:07)
| | а зачем нужно ".{1,2}"?
А так, вроде, всё верно | |
|
|
|
|
|
|
|
для: ЯR
(28.10.2006 в 20:10)
| | можно так:
<?
if (preg_match_all ("#<div style='[^']*'><p align=center><a href='([^']*)'><STRONG>(.*)</STRONG></a></p></div>#isU", $text, $regs))
?>
|
| |
|
|
|
|
|
|
|
для: ЯR
(28.10.2006 в 20:10)
| |
<?
if (preg_match_all ("#<DIV style='PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; PADDING-TOP: 7px'><P align=center><a href='([^']*)'><STRONG>(.*)</STRONG></a></p></div>#isU", $text, $regs))
?>
|
Просто я ещё не дописал, а ".{1,2}" буду дальше использовать.
Хотел пока эту часть нормально написать.
Будет работать? | |
|
|
|
|
|
|
|
для: dima_s_d_s
(28.10.2006 в 20:14)
| | > Будет работать?
должно | |
|
|
|
|
|
|
|
для: ЯR
(28.10.2006 в 20:15)
| | ещё раз
на сайте есть вот такой код
<DIV style="PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; PADDING-TOP: 7px"> <P align=center><A href="http://love.in-alushta.ru/news_5575.html"><STRONG>Читать далее</STRONG> [10]</A></P></DIV>
|
Если я напишу :
if (preg_match_all ("#<DIV style='PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; PADDING-TOP: 7px'><P align=center><a href='([^']*)'><STRONG>(.*)</STRONG></a></p></div>#isU", $text, $regs))
|
то данные того кода будут находиться в $text. Так ?
А если так, как мне их вывести? | |
|
|
|
|
|
|
|
для: dima_s_d_s
(28.10.2006 в 20:19)
| | $text - код на сайте
в массив $regs будут помешены рег.выр. в скобках
$regs[0] = '<DIV style="PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; PADDING-TOP: 7px"> <P align=center><A href="http://love.in-alushta.ru/news_5575.html"><STRONG>Читать далее</STRONG> [10]</A></P></DIV> '
$regs[1] = 'http://love.in-alushta.ru/news_5575.html'
$regs[2] = 'Читать далее' | |
|
|
|
|
|
|
|
для: ЯR
(28.10.2006 в 20:23)
| | Сенкс. Попробую! | |
|
|
|
|
|
|
|
для: ЯR
(28.10.2006 в 20:23)
| | что-то не так. не хочет выводить! | |
|
|
|
|
|
|
|
для: dima_s_d_s
(28.10.2006 в 20:38)
| | после кода напиши
print '<pre>';
print_r($regs);
print '</pre>';
|
и посмотри, что там в массиве | |
|
|
|
|
|
|
|
для: ЯR
(28.10.2006 в 20:46)
| | сек. гляну | |
|
|
|
|
|
|
|
для: ЯR
(28.10.2006 в 20:46)
| | вот
Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) ) | |
|
|
|
|
|
|
|
для: dima_s_d_s
(28.10.2006 в 20:51)
| | ща попробую сам | |
|
|
|
|
|
|
|
для: ЯR
(28.10.2006 в 20:54)
| | только я сайт для примера указал а на самом деле там другой адрес! | |
|
|
|
|
|
|
|
для: dima_s_d_s
(28.10.2006 в 20:56)
| | у меня так работает:
<?php
$text = '<DIV style="PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; PADDING-TOP: 7px"> <P align=center><A href="http://love.in-alushta.ru/news_5575.html"><STRONG>Читать далее</STRONG> [10]</A></P></DIV>';
if (preg_match_all('#<DIV style="PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; PADDING-TOP: 7px"> <P align=center><A href="([^"]*)"><STRONG>(.*)</STRONG> \[10\]</A></P></DIV>#isU', $text, $regs));
print '<pre>';
print_r($regs);
print '</pre>';
?>
|
| |
|
|
|
|
|
|
|
для: ЯR
(28.10.2006 в 21:02)
| | Да так работат. Тогда я пока так по тестирую. А потом если что-то будет не ясно напишу.
Сенкс за помощ ! | |
|
|
|
|
|
|
|
для: dima_s_d_s
(28.10.2006 в 21:16)
| | у меня проблема с пробелами!
<?php
$text = '<DIV style="PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; PADDING-TOP: 7px"> <P align=center><A href="http://love.in-alushta.ru/news_5575.html"><STRONG>Читать далее</STRONG> [10]</A></P></DIV>';
if (preg_match_all('#<DIV style="PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; PADDING-TOP: 7px"> <P align=center><A href="([^"]*)"><STRONG>(.*)</STRONG> \[10\]</A></P></DIV>#isU', $text, $regs));
print '<pre>';
print_r($regs);
print '</pre>';
?>
|
если там добавить пробелы! то не работает. Как можно не учитывать пробелы? | |
|
|
|
|
|
|
|
для: dima_s_d_s
(29.10.2006 в 14:08)
| |
<?php
$text = '<DIV style="PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; PADDING-TOP: 7px"> <P align=center><A href="http://love.in-alushta.ru/news_5575.html"><STRONG>Читать далее</STRONG> [10]</A></P></DIV>';
if (preg_match_all('#<DIV[\s+]style="PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; PADDING-TOP: 7px">[\s*]<P[\s+]align=center><A[\s+]href="([^"]*)">[\s*]<STRONG>(.*)</STRONG>[\s*]\[10\]</A>[\s*]</P>[\s*]</DIV>#isU', $text, $regs));
print '<pre>';
print_r($regs);
print '</pre>';
?>
|
примерно так (везде, где могут быть пробелы замени на [\s*]) | |
|
|
|
|
|
|
|
для: ЯR
(29.10.2006 в 14:14)
| | А если там нет пробела и я поставил [\s*] то тоже не работает!
Как быть? | |
|
|
|
|
|
|
|
для: dima_s_d_s
(29.10.2006 в 14:36)
| | сорри.
Я ошибся! не [\s*] и [\s+], а [\s]* и [\s]+ | |
|
|
|
|
|
|
|
для: ЯR
(29.10.2006 в 14:14)
| | Вот структура там по ходу есть и конец строки
<?
<DIV
style="PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; LINE-HEIGHT: 13px; PADDING-TOP: 7px; BACKGROUND-COLOR: #f7f7f7"><A
title="Еу & Ter 7s"
href="http://love.in-alushta.ru/news_5575.html">
<H3>Der & ter Airs
030</H3></A><FONT color=#999999>[</FONT><A title="Love d"
href="http://in-alushta.ru/news-1.html">news</A><FONT
color=#999999>] от </FONT><A title="tre"
href="http://in-alushta/modules.php?name=Feedback&to=tre">ter</A></DIV>
?>
|
Я просто на этом примере тренируюсь (изучаю) регуляные выражения.
Пока я хочу взять всё что находиться до
<?
...
</A><FONT color=#999999>[</FONT><A title="Love d"
href="http://in-alushta.ru/news-1.html">news</A><FONT
color=#999999>] от </FONT><A title="tre"
href="http://in-alushta/modules.php?name=Feedback&to=tre">ter</A></DIV>
?>
|
вот эту часть:
<?
<DIV
style="PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; LINE-HEIGHT: 13px; PADDING-TOP: 7px; BACKGROUND-COLOR: #f7f7f7"><A
title="Еу & Ter 7s"
href="http://love.in-alushta.ru/news_5575.html">
<H3>Der & ter Airs
030</H3></A>
...
?>
|
| |
|
|
|
|
|
|
|
для: dima_s_d_s
(29.10.2006 в 14:50)
| | а [\s]* и [\s]+ непонял как их использовать | |
|
|
|
|
|
|
|
для: dima_s_d_s
(29.10.2006 в 15:31)
| | если в коде есть место, где может быть пробел (или несколько), то в шаблоне на этом месте пиши [\s]* (если там не менее 1 пробела, то [\s]+) | |
|
|
|
|
|
|
|
для: dima_s_d_s
(29.10.2006 в 14:50)
| | примерно так:
<?php
// $text -- текст
preg_match('|<DIV[\s]+style="PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; LINE-HEIGHT: 13px; PADDING-TOP: 7px; BACKGROUND-COLOR: #f7f7f7">[\s]*<A[\s]+title="([^"]*)"[\s]*href="([^"])*">[\s]*<H3>(.*)</H3></A>|isU', $text, $regs);
?>
|
$regs[0] -- должно быть то, что надо | |
|
|
|
|
|
|
|
для: ЯR
(29.10.2006 в 15:44)
| | Супер всё получилось.
вот код
<?
if (preg_match_all('#<div[\s]+style="PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; LINE-HEIGHT: 13px; PADDING-TOP: 7px; BACKGROUND-COLOR: \#f7f7f7">[\s]*<A[\s]+title="(.*)" [\s]+ href="([^"]*)">[\s]+<h3>(.*)</h3>[\s]*</A>#isU', $text, $regs));
?>
|
Только если $text="http://адрес сайта/"; то не работат
может сайт не так надо открывать? | |
|
|
|
|
|
|
|
для: dima_s_d_s
(29.10.2006 в 16:06)
| | Не так. Это вы просто текст http://адрес сайта переменной присвоили, а надо файл прочитать:
<?php
$text = file_get_contents('http://adres-saita/');
?>
|
| |
|
|
|
|
|
|
|
для: ЯR
(29.10.2006 в 16:33)
| | а если конец строки то мне просто поставить $
да?
А конец строки и абзац, это одно и тоже? | |
|
|
|
|
|
|
|
для: dima_s_d_s
(29.10.2006 в 17:42)
| | да, если ты про рег. выражение,
а начало строки -- ^ (не путать с ^ в скобках ([^>])) | |
|
|
|
|
|
|
|
для: ЯR
(29.10.2006 в 17:47)
| | Только что переписал под нужный сайт. И работает! Супер. Но на этом я не буду останавливаться. Ещё много чего надо сделать.
Спасибо за помощь. С этого форума я больше узнал информации, чем со всего инета. Прикольно. Я немного научился работать с выражениями.
Я буду продвигаться дальше и если что непонятно то напишу.
Еще раз спасибо за помощь. | |
|
|
|
|
|
|
|
для: dima_s_d_s
(29.10.2006 в 18:15)
| | Да.
На этом форуме уже наверно несколько поколений программеров выучилось | |
|
|
|
|
|
|
|
для: ЯR
(29.10.2006 в 18:57)
| | Единственное что на этом форуме хотелось бы добавить это сообщение об ответе на мыло! | |
|
|
|
|
|
|
|
для: dima_s_d_s
(29.10.2006 в 19:23)
| | предложи это админам (Хеопс, Кузницов, Дизайнер) в разделе Разное,
если согласятся, могу и сам написать | |
|
|
|
|
|
|
|
для: ЯR
(29.10.2006 в 19:47)
| | А почему тебя в аське нету? | |
|
|
|
|
|
|
|
для: dima_s_d_s
(29.10.2006 в 20:12)
| | Что означает это выражение:
<?
...
"`<td(?:.+)>(.+)</td>`isU"
...
?>
|
Кто может опишите что к чему! | |
|
|
|
|
|
|
|
для: dima_s_d_s
(29.10.2006 в 20:28)
| | Скорее всего это описание типа:
Тег td, содержащий не менее одного символа (т.е. "(.+)"), имеющий не менее одного символа в параметрах тега ("<td(?:.+)>").
Хотя не уверен, т.к. не знаю, что может значить "?:" в скобках | |
|
|
|
|
|
|
|
для: dima_s_d_s
(29.10.2006 в 20:28)
| | (?: - означает, что скобку эту не надо запоминать. | |
|
|
|
|
|
|
|
для: dmitrii_r
(29.10.2006 в 23:06)
| | спасибо, буду знать.
Но не понимаю, зачем тогда эта скобка вообще нужна, если её можно заменить на ".+" | |
|
|
|
|
|
|
|
для: dima_s_d_s
(29.10.2006 в 20:12)
| | Ща буду | |
|
|
|