Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как вырезать определенный кусок текста

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Нужно найти ви вывести кусок текста со страницы с миножеством параграфов.
Virus1850
Отправлено: 25 Июля, 2016 - 23:16:59
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)

[+]


Помогите советом, как вывести текст с определенного параграфа, если их много, и ко-во может изменятся...
Есть примерно такой код:
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 - что и понятно, т.к. данные в массиве. А уже потом чистый текст обрезать До и После нужного текста.

(Отредактировано автором: 26 Июля, 2016 - 00:34:44)

 
 Top
Строитель
Отправлено: 26 Июля, 2016 - 18:51:45
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




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. */
 
 Top
Virus1850
Отправлено: 27 Июля, 2016 - 02:26:20
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)

[+]


Спасибо! Получилось то что хотел, но, не совсем помогло, решил проблему объединением всего массива и отфильтровал из него нужный кусок текста.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB