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

Форум Регулярные Выражения

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

 

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

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

тема: Оставить только нужные части в строке
 
 автор: loneliness   (17.01.2007 в 15:33)   письмо автору
 
 

Есть объемный текст, в нем в разных местах встречаются конструкции вида:

<ems:mms url="http://site.com/file.gif">

Подскажите, пожалуйста, как вывести в echo(); только все эти конструкции, а остальной текст удалить?

   
 
 автор: cheops   (17.01.2007 в 15:51)   письмо автору
 
   для: loneliness   (17.01.2007 в 15:33)
 

Здесь удобнее воспользоваться регулярными выражениями
<?php 
  $text 
'Есть объемный текст, в нем в разных местах встречаются конструкции вида:
<ems:mms url="http://site.com/file.gif"> 
Подскажите, пожалуйста, как вывести в echo(); только все эти конструкции, а остальной текст удалить?'


$pattern "|<ems:mms[^>]+>|is";

preg_match_all($pattern$text$out); 
?>

   
 
 автор: Loneliness   (17.01.2007 в 16:13)   письмо автору
 
   для: cheops   (17.01.2007 в 15:51)
 

Почему-то не выходит. Или я что не так делаю?..
Выводить мне нужно содержимое массива $out, так ведь?
Пишу код:

...
$pattern = "|<ems:mms[^>]+>|is"; 
preg_match_all($pattern, $cont, $out);  
       for($i=0; $i < sizeof($out); $i++)
          echo "$out[$i]";

Выводит просто слово array.
То же самое, если пишу:

...
$pattern = "|<ems:mms[^>]+>|is"; 
 preg_match_all($pattern, $cont, $out);  
      
          echo ("$out[0] $out[1] $out[2] $out[3]");

Что у меня не верно?

   
 
 автор: kasmanaft   (17.01.2007 в 17:51)   письмо автору
 
   для: Loneliness   (17.01.2007 в 16:13)
 

Используется функция глобального поиска preg_match_all ... которая создает
двумерный массив: $arr [номер скобки][номер подстроки]

То есть будет что-то типа:

$pattern = "|<ems:mms[^>]+>|is";  
preg_match_all($pattern, $cont, $out);   
       for($i=0; $i < sizeof($out[0]); $i++) 
          echo $out[0][$i];

   
 
 автор: loneliness   (17.01.2007 в 18:23)   письмо автору
 
   для: kasmanaft   (17.01.2007 в 17:51)
 


<?php  
$cont 
' Текст текст текст текст <ems:mms url="http://"> текст текст';

$pattern "|<ems:mms[^>]+>|is";   
preg_match_all($pattern$cont$out);    
       for(
$i=0$i sizeof($out[0]); $i++)  
          echo 
$out[0][$i]; 


?>


Не выводит ничего... :(
Начинаю осознавать, что такое "я уже вареный"...

   
 
 автор: kasmanaft   (17.01.2007 в 18:42)   письмо автору
 
   для: loneliness   (17.01.2007 в 18:23)
 

Наверное :)
Посмотрите код созданной страницы ...

   
 
 автор: Loneliness   (17.01.2007 в 19:06)   письмо автору
 
   для: kasmanaft   (17.01.2007 в 18:42)
 

Второй раз за сутки спасаете меня от глобального психоза. Вот я дурбецил... Выспаться нужно...

   
Rambler's Top100
вверх

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