|
|
|
| С помощью рег. выражения
$pattern1 = "#<a class=\"news18\">(.+)<\/a>(.+)<br><br><br>#si";
preg_match($pattern1, $contents, $out1);
$post_title = $out1[1];
$post_text = $out1[2];
|
Обрабатываю сграбленный текст, он передается через $post_text = $out1[2];:
<a class="news18">Украина: сине-белые ослы против оранжевых</a><br>
<p><img src="http://site.ru/images/medium-osliki-2410.jpg"
border="0" alt=" " hspace="5" width="190" height="140" align="left" />В стране сала и
горилки решили <a href=http://www.interfax.ru/r/B/0/0.html?id_issue=11608521
target="_blank"><u>возродить</u></a><a
href="http://www.interfax.ru/r/B/0/0.html?id_issue=11608521"></a> один древний вид спорта…
|
При этом теряется тег </a> после второй ссылки, здесь: «</a> один древний вид…»
Не могу понять, в чем причина. Помогите, пожалуйста. | |
|
|
|
|
|
|
|
для: dmitrii_r
(27.10.2006 в 16:55)
| | В первую скобку (.+) у вас попал текст
Украина: сине-белые ослы против оранжевых</a><br>
<p><img src="http://site.ru/images/medium-osliki-2410.jpg"
border="0" alt=" " hspace="5" width="190" height="140" align="left" />В стране сала и
горилки решили <a href=http://www.interfax.ru/r/B/0/0.html?id_issue=11608521
target="_blank"><u>возродить</u></a><a
href="http://www.interfax.ru/r/B/0/0.html?id_issue=11608521">
|
Потому, что php сейчас жадный (иль не жадный хз ... наверное все же жадный... ), нужно использовать модификатор жадности:
$pattern1 = "#<a class=\"news18\">(.+?)<\/a>(.+)<br><br><br>#si";
// либо
$pattern1 = "#<a class=\"news18\">(.+)<\/a>(.+)<br><br><br>#siU";
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(27.10.2006 в 20:57)
| | Спасибо, kasmanaft. Модификатор U сработал. Текст берется из второй скобки, причем в отдельных случаях на других техстах с тегом </a> работал и прежний вариант рег.выражения. Мой опыт с рег.выражениями мал, наверное, практикуя в дальнейшем, с подобными "не понятными" глюками придется экспериментировать с жадностью скобок ("карманов") или всего шаблона. | |
|
|
|