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
Форумы портала PHP.SU :: Версия для печати :: чистка тегов
Форумы портала PHP.SU » PHP » Регулярные выражения » чистка тегов

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

1. Tmin10 - 15 Июня, 2011 - 22:33:45 - перейти к сообщению
Есть текст, в нём есть следующий фрагмент:
CODE (html):
скопировать код в буфер обмена
  1. Текст...
  2. <blockquote>
  3. <p>if ($_GET['s']=='123')</p>
  4. <p>{</p>
  5. <p>if ($_SESSION['level']=='admin')</p>
  6. <p>{</p>
  7. <p>$_SESSION['admin']='real';</p>
  8. <p>header("location: /admin/index.php"); </p>
  9. <p>}</p>
  10. <p>}</p>
  11. </blockquote>
  12. Текст...

Как именно в этом фрагменте убрать теги p, не трогая другой текст?
2. EuGen - 15 Июня, 2011 - 22:35:10 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $text=preg_replace('/\<p(.*?)\>(.*?)\<\/p\>/ism', $2, $text);


?
3. Tmin10 - 15 Июня, 2011 - 22:37:00 - перейти к сообщению
EuGen пишет:
?

Не, не во всём тексте, а тока между тегами <blockquote>
Я привёл фрагмент только, там ещё полно абзацев.
4. Tmin10 - 16 Июня, 2011 - 10:36:02 - перейти к сообщению
Т.е. просто надо как то выделить фрагмент и провести чистку тока в нём...
5. EuGen - 16 Июня, 2011 - 10:59:48 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $text='<p>Текст...</p>
  2. <blockquote>
  3. <p>if ($_GET["s"]=="123")</p>
  4. <p>{</p>
  5. <p>if ($_SESSION["level"]=="admin")</p>
  6. <p>{</p>
  7. <p>$_SESSION["admin"]="real";</p>
  8. <p>header("location: /admin/index.php"); </p>
  9. <p>}</p>
  10. <p>}</p>
  11. </blockquote>
  12. <p>Текст...</p>';
  13. $text=preg_replace_callback('/\<blockquote\>(.*)\<\/blockquote\>/smi',create_function('$rgMatches', 'return "<blockquote>".preg_replace("/\<p(.*?)\>(.*?)\<\/p\>/smi", "$2", $rgMatches[1])."</blockquote>";'),$text);
  14. var_dump($text);
6. LIME - 16 Июня, 2011 - 15:30:19 - перейти к сообщению
EuGen почему после substr() для выделения фрагмента применить strip_tags() попросту нельзя ? Растерялся
7. EuGen - 16 Июня, 2011 - 15:32:22 - перейти к сообщению
Потому что
0. substr не выделит Вам фрагмент
1. strip_tags уберет все теги, а нужно убрать только <p>..</p>
8. LIME - 16 Июня, 2011 - 15:35:49 - перейти к сообщению
ооо...
извините )) мне спать уже надо ложится ))
9. Tmin10 - 16 Июня, 2011 - 21:29:51 - перейти к сообщению
Спасибо, код отлично работает!

 

Powered by ExBB FM 1.0 RC1