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

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

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: вытащить данные меж тегов bb

Сообщения:  [1-9] 

 
 автор: Lelik   (08.08.2006 в 17:12)   письмо автору
 
   для: Axxil   (08.08.2006 в 11:49)
 

Очень благодарю :)

   
 
 автор: Axxil   (08.08.2006 в 11:49)   письмо автору
 
   для: Lelik   (07.08.2006 в 22:39)
 

Так попробуйте:

<?
$pattern 
'|\[url\]([^\[]*)\[/url\]|is'
preg_match_all($pattern,$sub,$out);
foreach(
$out[1] as $value){
  if(
strpos('http://',$value)===false$url .= 'http://'.$value;
  else 
$url $value;
  
$message str_replace($value,$url,$message);

?>

   
 
 автор: Lelik   (07.08.2006 в 22:39)   письмо автору
 
   для: Axxil   (07.08.2006 в 01:00)
 

А можно наглядный, работающий пример?

   
 
 автор: Axxil   (07.08.2006 в 01:00)   письмо автору
 
   для: Lelik   (07.08.2006 в 00:04)
 

Содержимое тегов хранится в массиве $out[1]
Вот его и надо подставлять в цикл.

   
 
 автор: Lelik   (07.08.2006 в 00:04)   письмо автору
 
   для: Axxil   (06.08.2006 в 15:52)
 

>Для решения этой проблемы надо сначала выдёргивать ссылки с
>помощью preg_maych_all , потом приводить их в нормальный
>вид, и втыкать на место

А как вот это сделать? я пытался, но циклом форич выводит вместо содержимого меж тегов слово Array. Как мне эти данные в нормальный вид привести?

   
 
 автор: Axxil   (06.08.2006 в 15:52)   письмо автору
 
   для: Lelik   (05.08.2006 в 21:02)
 


<? 
$pattern 
'|\[url\]([^\[]*)\[/url\]|is'
echo 
preg_replace($pattern,'<a href="\\1">ссылка</a>',$message);
?> 

только в этом случае надо следить если ссылка будет начинаться на www то ссыка будет выглядеть не так (как, посмотрите на этом форуме, выделив в сообщении тегами url например www.ya.ru)
Для решения этой проблемы надо сначала выдёргивать ссылки с помощью preg_maych_all , потом приводить их в нормальный вид, и втыкать на место

   
 
 автор: Lelik   (05.08.2006 в 21:02)   письмо автору
 
   для: Axxil   (05.08.2006 в 19:13)
 

меня больше интересует - это как эти данные потом вывести в ХТМЛ?
например теги [ url ] заменить на <a href="">и в него(тэг а) заключить данные введенные между тегами урл

   
 
 автор: Axxil   (05.08.2006 в 19:13)   письмо автору
 
   для: Lelik   (05.08.2006 в 18:45)
 


<?
$pattern 
'|\[url\]([^\[]*)\[/url\]|is';
preg_match_all($pattern$_POST['txt'], $out); 
?>

но это выражение не будет работаь если будут вложенные bb-теги.
Это актуально при разборе тегов типа [cite][/cite]

   
 
 автор: Lelik   (05.08.2006 в 18:45)   письмо автору
 
 

Как это сделать и после заменить bb теги на заданные мной? Я пишу форум и мне надо вынять текст меж тегов [code\][/code] и [url\][/url].
я пытаюсь сделать так, например

   $_POST['txt']  = trim(htmlspecialchars(stripslashes(mysql_escape_string($_POST['txt']))));

   preg_match_all("|\[url\]([\S].*)\[\/url\]|isU", $_POST['txt'], $out);
        unset($out[0]);
        foreach ($out as $index => $url)
          {
             echo change_tags($_POST['txt']);
          }
        echo"<br><br><br><hr>";
             $text =  change_tags($_POST['txt']);
             echo $text;

             function change_tags($txter)
                {
                   str_replace("[url]", "<b>", $txter);
                   str_replace("[/url]", "</b>", $txter);
                   return $txter;
                }

   

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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