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 :: Вырезать кусок из html кода, между двух заданных границ

 PHP.SU

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


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

> Описание: Браузер выдает ERR_EMPTY_RESPONSE
kamwork
Отправлено: 30 Марта, 2014 - 09:48:32
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Март 2014  


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




Всем привет!

Была задача вырезать кусок html кода, начинающегося с:

CODE (html):
скопировать код в буфер обмена
  1. <a href='../../../../../goods/section_2/


и до:

CODE (html):
скопировать код в буфер обмена
  1. <div align="center" id="full_img_poln">


Был предложен такой вариант:

PHP:
скопировать код в буфер обмена
  1. preg_match('#(<a href="../../../../../goods/[^/]+(?:(?!(?:<div align="center" id="full_img_poln">)).)*)<div align="center" id="full_img_poln">#isu',
  2. $html, $match );


На маленьком куске кода он работает:
PHP:
скопировать код в буфер обмена
  1.  
  2. $html = '
  3. <a href="../../../../../goods/section_2/index.html" class="pathway">Главная</a>sdfsdfsdfsdfsdfsdfsdfs dfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfs  
  4. dfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdf
  5. sdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfs<div align="center" id="full_img_poln"></div>';
  6.  
  7. preg_match('#(<a href="../../../../../goods/[^/]+(?:(?!(?:<div align="center" id="full_img_poln">)).)*)<div align="center" id="full_img_poln">#isu',
  8. $html, $match );
  9.  
  10. echo '<pre>'.print_r($match[1] , 1).'</pre>';



А на куске чуть побольше, уже нет:

PHP:
скопировать код в буфер обмена
  1. $html = '
  2. <a href="../../../../../goods/section_2/index.html" class="pathway">Главная</a>sdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfs  
  3. dfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdf
  4. sdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsd
  5. fsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdf
  6. sdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfs
  7. dfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsd
  8. fsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdf
  9. sdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsd
  10. fsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdf<di v align="center" id="full_img_poln"></div>';
  11.  
  12. preg_match('#(<a href="../../../../../goods/[^/]+(?:(?!(?:<div align="center" id="full_img_poln">)).)*)<div align="center" id="full_img_poln">#isu',
  13. $html, $match );
  14.  
  15. echo '<pre>'.print_r($match[1] , 1).'</pre>';
  16.  


браузер зависает и выдает ошибку:

Цитата:
Невозможно загрузить веб-страницу, так как не поступили данные от сервера.
Код ошибки: ERR_EMPTY_RESPONSE



Подскажите как быть?
 
 Top
duhon
Отправлено: 03 Апреля, 2014 - 17:04:05
Post Id



Гость


Покинул форум
Сообщений всего: 72
Дата рег-ции: Нояб. 2011  


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




регулярка рабочая, хотя и мудрянная, можно написать очень просто

PHP:
скопировать код в буфер обмена
  1. $html = '
  2. <a href="../../../../../goods/section_2/index.html" class="pathway">Главная</a>sdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfs  
  3. dfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdf
  4. sdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsd
  5. fsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdf
  6. sdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfs
  7. dfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsd
  8. fsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdf
  9. sdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsd
  10. fsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdf___<div align="center" id="full_img_poln"></div>';
  11.  
  12. preg_match('#\Q<a href="../../../../../goods/\E.*?(?=\Q<div align="center" id="full_img_poln">\E)#isu',
  13. $html, $match );
  14.  
  15. echo '<pre>'.print_r($match[0] , 1).'</pre>';

(Отредактировано автором: 03 Апреля, 2014 - 17:11:52)

 
 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