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

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

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

 

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

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

тема: Почему не работает регулярное выражение?
 
 автор: Бамси   (15.01.2007 в 17:46)   письмо автору
 
 

Я вырезаю с сайта фразу,
Druid</TD></TR><T
Надо очистить все от этих тегов.. использую регулрное выражение.
preg_match("#(.*)(<\/)(.*)#i", $varvoc, $v);
Но он почему то обрезает только до
Druid</TD>
Не знаю почему :(

Вот код дял проверки:

<?php
$char 
"Antilopa";
$link "http://www.tibia.com/community/?subtopic=character&name=".urlencode($char);  
$fd fopen($link"r");  
$text="";  
  if (!
$fd) echo "Сервер временно не доступен.";  
  else  
  {  
    while (!
feof ($fd))  
    {  
      
$text .= fgets($fd9000);  
    }  
  }  
  
fclose ($fd);
  
$posvoc strpos($text"Profession:"); 
  
$varvoc substr($text$posvoc+2017);
  echo 
"Voc1:".$varvoc."<br>";
  
$varvoc preg_match("#(.*)(<\/)(<\/)(.*)#i"$varvoc$v);
  echo 
"Voc2:".$v[1]."<br>";
?>

   
 
 автор: ddhvvn   (15.01.2007 в 18:15)   письмо автору
 
   для: Бамси   (15.01.2007 в 17:46)
 

Попробуйте вместо preg_match использовать preg_match_all

   
 
 автор: Бамси   (15.01.2007 в 18:44)   письмо автору
 
   для: ddhvvn   (15.01.2007 в 18:15)
 

Неа, не получается..
как я понял он выполняет это регулярку справа на лево, а надо что бы он выполнял ее с лева на право.

   
 
 автор: ddhvvn   (15.01.2007 в 18:58)   письмо автору
 
   для: Бамси   (15.01.2007 в 18:44)
 

нет. он просто ищет ВСЕ соответствия, а preg_match - первое

P.S.: что-то странное у Вас выражение :-/ Скорее всего, дело в нем
Вопрос не очень понятен. Вам не подойдет функция strip_tags()?

   
 
 автор: Бамси   (15.01.2007 в 19:17)   письмо автору
 
   для: ddhvvn   (15.01.2007 в 18:58)
 

со strip_tags() не работает - не знаю почему.

   
 
 автор: kasmanaft   (15.01.2007 в 19:35)   письмо автору
 
   для: Бамси   (15.01.2007 в 17:46)
 

>> Почему не работает регулрное
Да собственно оно и не может работать :)
В имени может быть знак "<" ?
Если нет, то можно попробовать вот так:

#(.*?)<#

- - - - - -
а, в коде почему-то другое выражение ... то, что наверху должно работать, если изменить жадность модификатором "U"

   
Rambler's Top100
вверх

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