Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как в строке затереть от данного до данного символов?
 
 автор: Shorr Kan   (16.08.2005 в 07:24)   письмо автору
 
 

Как вытереть в строке все, между <fafa> и </fafa> - причем, если они встречаются неизвестно сколько раз?

   
 
 автор: Ziq   (16.08.2005 в 07:55)   письмо автору
 
   для: Shorr Kan   (16.08.2005 в 07:24)
 

Может я ошибаюсь, но по-моему можно регулярными выражениями

preg_replace("/^<fata>[\S\s]*<\/fata>*)$/i","",$obj);
или что-то в этом роди.

   
 
 автор: Shorr Kan   (16.08.2005 в 08:32)   письмо автору
 
   для: Ziq   (16.08.2005 в 07:55)
 

Warning: Compilation failed: unmatched parentheses at offset 25

   
 
 автор: Shorr Kan   (16.08.2005 в 08:42)   письмо автору
 
   для: Shorr Kan   (16.08.2005 в 08:32)
 

$obj=preg_replace("/^<Tracks>[\S\s]*<\/Tracks>*$/i","",$obj);
print htmlspecialchars($obj);

Сделал так. Но он ничего не вырезает... Мне кажется, ошибка где-то в *$/i


Исправил на

$obj=preg_replace("/<Tracks>[\S\s]*<\/Tracks>/i","",$obj);
print htmlspecialchars($obj);

сработало, но вырезало только один раз... да и то - очень странно вырезало :(

   
 
 автор: Андрюха.   (16.08.2005 в 14:48)   письмо автору
 
   для: Shorr Kan   (16.08.2005 в 08:42)
 

Попробуй как http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=6155&page=2 а потом в цикл загнать с проверкой isset

   
 
 автор: cheops   (16.08.2005 в 15:48)   письмо автору
 
   для: Shorr Kan   (16.08.2005 в 07:24)
 

Это зависит от того, имеется ли между тэгами другие тэги, если имеются, тогда придётся заменить их на какой-то уникальный символ, а потом восстановить по окончанию. Если между ними других тэгов нет, то можно воспользоваться следующим выражением
<?php 
  $text 
'Как вытереть в строке все, между <fafa> и </fafa> - причем, если они встречаются неизвестно сколько раз?';
  echo 
preg_replace("|<fafa>([^<]+)<|i","<fafa><",$text);
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования