|
|
|
|
<div class="text">
<p>Игрок Арсенала, по крайней мере, повел себя честно и осознал свое поведение.,<br />
Перед пенальти на последней минуте в<br />
матче Кубка Англии Арсенал-Лидс, был,<br />
еще один эпизод, когда арбитр матча также хотел назначить<br />
одиннадцатиметровый. Но после</p>
</div>
|
Подскажите как получить весь текст <div class="text"> и </div>. Я пробую:
preg_match_all("/(?<= div class=\"text\">).*?<div/s", $content, $text);
| - не работает | |
|
|
|
|
|
|
|
для: starpom
(09.01.2011 в 13:50)
| | Можно воспользоваться следующим регулярным выражением
<?php
$text = '<div class="text">
<p>Игрок Арсенала, по крайней мере, повел себя честно и осознал свое поведение.,<br />
Перед пенальти на последней минуте в<br />
матче Кубка Англии Арсенал-Лидс, был,<br />
еще один эпизод, когда арбитр матча также хотел назначить<br />
одиннадцатиметровый. Но после</p>
</div>';
$pattern = "|<div class=\"text\">(.*?)</div>|is";
preg_match_all($pattern, $text, $out);
print_r($out);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(09.01.2011 в 14:25)
| | Спасибо, то что надо, единственное что не очень гут, так это то, что при выводе этого текста на экран после обработки:
$text= strip_tags(trim($text[0][0]));
|
между строками в разных местах бывают непонятные мне разрывы (по всей видимости там какие-то непечатные символы или что-то в этом роде), не подкажите как от них избавиться, скажем заменив на пробелы? | |
|
|
|
|
|
|
|
для: starpom
(09.01.2011 в 14:53)
| | После этой обработки добавьте еще одну
<?php
$text = preg_replace("|[\s]+|s", " ", $text);
?>
|
Она заменит все последовательности пробельных символов обычным пробелом. | |
|
|
|
|
|
|
|
для: cheops
(09.01.2011 в 15:00)
| | Спасибо | |
|
|
|
|
|
|
|
для: starpom
(09.01.2011 в 13:50)
| |
<?
$pattern='%
<div[^>]*>
(
(
[^<]*
|
<
(?!/div)
[^>]*>
)*
)</div>
%x';
preg_match_all($pattern, $text, $m);
print_r($m[1]);
|
И надо понимать, что вложенную структуру регулярка не раскроет.
Это вообще не ее профиль. Не смотря на наличие рекурсивных ссылок. | |
|
|
|