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

Форум PHP

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

 

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

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

тема: BBcode - срочно помощь
 
 автор: seitbekir   (11.02.2010 в 14:36)   письмо автору
 
 

Короче мне на днях взбрела идейка как сделать bb проверку на правильность указанного кода
и как защитить от коверканья внешнего вида сайта (защ. от [ /code], [ /table]);

<?php

if(eregi("\[b\]",$text) and eregi("\[/b\]",$text)){
$text_5 explode('[b]'$text);
$lim_5 count($text_5);
$text $text_5[0];

for(
$i=1;$i<$lim_5;$i++){                                    
$text_5[$i] = preg_replace("/^/","<b>",$text_5[$i]);
$text_5[$i] = preg_replace("\[/b\]""</b>"$text_5[$i/*лимит*/); //по идее тут должно быть только одно
$text .= $text_5[$i];
};
};

?>


но как поставить лимит?

ведь может быть и так [ code] bla-bla [ /code] [ /code]

  Ответить  
 
 автор: Loki   (11.02.2010 в 15:52)   письмо автору
 
   для: seitbekir   (11.02.2010 в 14:36)
 

проверять соответствует ли количество открытых тегов количеству закрытых. Регулярками делать это заманаетесь.

  Ответить  
 
 автор: DEM   (11.02.2010 в 15:58)   письмо автору
 
   для: Loki   (11.02.2010 в 15:52)
 

А почему бы не сделать что-то вроде:

<?php
$p 
"|\[b\](.*)\[\/b\]|";
$p2 "<b>$1</b>";
$text "[ b]dsfsdfsdf[ /b]"//тут без пробелов в начале BB-тега
echo preg_replace($p$p2$text);
?>

Тогда, если не будет закрывающего тега он его и не изменит. Или я в чём-то ошибся?

  Ответить  
 
 автор: seitbekir   (11.02.2010 в 16:09)   письмо автору
 
   для: DEM   (11.02.2010 в 15:58)
 

http://www.h4l.pp.ua/?page=forum&type=view&topic=read

результат

кому интересно:

логин - логин
пароль - пароль

  Ответить  
 
 автор: seitbekir   (11.02.2010 в 16:13)   письмо автору
 
   для: DEM   (11.02.2010 в 15:58)
 

там на посмотр посмотрите, почему-то [ b][ /b][ b][ /b]

выдает - [b] [/b]

  Ответить  
 
 автор: seitbekir   (11.02.2010 в 15:52)   письмо автору
 
   для: seitbekir   (11.02.2010 в 14:36)
 

[/b][b][/b][b] - посчитайте

  Ответить  
 
 автор: freeing   (11.02.2010 в 16:35)   письмо автору
 
   для: seitbekir   (11.02.2010 в 14:36)
 

не парься:


<?php
    
final class BBCode
    
{
        private 
$BBCode => Array
        (
            
"b""blockquote""br""dd""dl""h1""h2""h3""h4""h5""h6""hr""i""img""li""ol""p""u""ul""url"
        
);

        public function 
Replace($String)
        {
            foreach(
$this->BBCode as $Name)
            {
                
$String preg_replace("/\[".$Name."=(.*)\](.*)\[\/".$Name."\]/isU""<a class=\"BBCode-".$Name."\" href=\"\\1\">\\2</a>"$String);
                
$String preg_replace("/\[".$Name."\](.*)\[\/".$Name."\]/isU""<".$Name." class=\"BBCode-".$Name."\">\\1</".$Name.">"$String);
                
$String preg_replace("/\[".$Name."=(.*)\]/isU""<img class=\"BBCode-".$Name."\" src=\"\\1\">"$String);
                
$String preg_replace("/\[".$Name."\]/isU""<".$Name." class=\"BBCode-".$Name."\">"$String);
                
$String preg_replace("/\[\/".$Name."\]/isU""</".$Name.">"$String);
            }

            return 
$String;
        }
    }
?>

  Ответить  
 
 автор: seitbekir   (11.02.2010 в 16:49)   письмо автору
 
   для: freeing   (11.02.2010 в 16:35)
 

что-то подобное пользуют на этом форуме, так что он кривит

а вот если разделить как можно сделать типо начало поменять ^text[ /b] [ /b] на <b>text</b> [ /b]

  Ответить  
 
 автор: freeing   (11.02.2010 в 16:54)   письмо автору
 
   для: seitbekir   (11.02.2010 в 16:49)
 

кривит!!!!!!!!!!!!!!!!!! ))))

покажи пример BBCoda который он с кривит?

не выдумывай велосипед!

  Ответить  
 
 автор: freeing   (11.02.2010 в 17:33)   письмо автору
 
   для: freeing   (11.02.2010 в 16:54)
 

наверное сидит, тестит _)))))))))))))))))))))))))

  Ответить  
 
 автор: Тень&   (11.02.2010 в 18:14)   письмо автору
 
   для: seitbekir   (11.02.2010 в 14:36)
 

Если делать именно проверку, то через стек

  Ответить  
 
 автор: seitbekir   (11.02.2010 в 18:38)   письмо автору
 
   для: Тень&   (11.02.2010 в 18:14)
 

(может покажусь дебилом но)что такое стек?

  Ответить  
 
 автор: cheops   (13.02.2010 в 14:22)   письмо автору
 
   для: seitbekir   (11.02.2010 в 18:38)
 

Организация данных в виде очереди с одним входом, т.е. кто первым входит - выходит последним, кто последним входит, выходит первым

| - |
| - |
| - |
| - |
-----

  Ответить  
 
 автор: Trianon   (11.02.2010 в 23:04)   письмо автору
 
   для: seitbekir   (11.02.2010 в 14:36)
 

а вот мне интересно, какой уровень срочности?
В любой из трех основных валют.

  Ответить  
Rambler's Top100
вверх

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