Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Как вырезать определенный кусок текста

Страниц (1): [1]
 

1. Virus1850 - 25 Июля, 2016 - 23:16:59 - перейти к сообщению
Помогите советом, как вывести текст с определенного параграфа, если их много, и ко-во может изменятся...
Есть примерно такой код:
PHP:
скопировать код в буфер обмена
  1. <div class="content">
  2. <p>Динамический параграф</p> // т.е. может быть, а может и нет
  3. <h2>Ненужный текст<h2> // т.е. может быть, а может и нет
  4. <p>Динамический параграф</p>
  5. <h2>Ненужный текстh2> // т.е. может быть, а может и нет
  6. <p>Динамический параграф</p>
  7.  
  8. <p>Постоянный текст</p> // Содержание Не изменяется никогда, а только порядковый номер в блоке
  9. <h2>Нужный текст<h2>
  10. <p>Постоянный текст</p> // Содержание Не изменяется никогда, а только порядковый номер в блоке
  11. </div>


Можно конечно написать что-то вроде:
PHP:
скопировать код в буфер обмена
  1. ...
  2. $content = ->find('.content');
  3. ...
  4. $text->find('h2', 2)->plaintext;


Но, так я выдергиваю текст во втором h2 теге, но, беда в том, что, периодически этот тег может быть 0,1,2,3... Зависит от того сколько будет параграфов и h2 до этого куска кода.

Можно ли как то выдергивать текст из h2 - началом и концом обрезки которого будут являться теги с <p> "постоянным текстом" в не зависимости какими они идут по счету в <div class="content">?? если да, то как, пример кода.

P.S. Или как вариант - можно ли вывести сплошным текстом все что есть в блоке <div class="content">? и если да, то как, т.к. просто вы выводе переменно она показывает array - что и понятно, т.к. данные в массиве. А уже потом чистый текст обрезать До и После нужного текста.
2. Строитель - 26 Июля, 2016 - 18:51:45 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $search = '
  2.    <div class="content">
  3.    <p>Динамический параграф</p> // т.е. может быть, а может и нет
  4.    <h2>Ненужный текст<h2> // т.е. может быть, а может и нет
  5.    <p>Динамический параграф</p>
  6.    <h2>Ненужный текстh2> // т.е. может быть, а может и нет
  7.    <p>Динамический параграф</p>
  8.    
  9.    <p>Постоянный текст</p> // Содержание Не изменяется никогда, а только порядковый номер в блоке
  10.    <h2>Нужный текст<h2>
  11.    <p>Постоянный текст</p> // Содержание Не изменяется никогда, а только порядковый номер в блоке
  12.    </div>
  13. ';
  14.  
  15. preg_match_all('~<p[^>]*>(.*)</p>~iu', $search, $arr);
  16.  
  17. echo '<pre>'; print_r($arr[1]);
  18. /*
  19. Array
  20. (
  21.     [0] => Динамический параграф
  22.     [1] => Динамический параграф
  23.     [2] => Динамический параграф
  24.     [3] => Постоянный текст
  25.     [4] => Постоянный текст
  26. )
  27. */
3. Virus1850 - 27 Июля, 2016 - 02:26:20 - перейти к сообщению
Спасибо! Получилось то что хотел, но, не совсем помогло, решил проблему объединением всего массива и отфильтровал из него нужный кусок текста.

 

Powered by ExBB FM 1.0 RC1