|
|
|
| Короче мне на днях взбрела идейка как сделать 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] | |
|
|
|
|
|
|
|
для: seitbekir
(11.02.2010 в 14:36)
| | проверять соответствует ли количество открытых тегов количеству закрытых. Регулярками делать это заманаетесь. | |
|
|
|
|
|
|
|
для: 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);
?>
|
Тогда, если не будет закрывающего тега он его и не изменит. Или я в чём-то ошибся? | |
|
|
|
|
|
|
|
для: DEM
(11.02.2010 в 15:58)
| | http://www.h4l.pp.ua/?page=forum&type=view&topic=read
результат
кому интересно:
логин - логин
пароль - пароль | |
|
|
|
|
|
|
|
для: DEM
(11.02.2010 в 15:58)
| | там на посмотр посмотрите, почему-то [ b][ /b][ b][ /b]
выдает - [b] [/b] | |
|
|
|
|
|
|
|
для: seitbekir
(11.02.2010 в 14:36)
| | [/b][b][/b][b] - посчитайте | |
|
|
|
|
|
|
|
для: 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;
}
}
?>
|
| |
|
|
|
|
|
|
|
для: freeing
(11.02.2010 в 16:35)
| | что-то подобное пользуют на этом форуме, так что он кривит
а вот если разделить как можно сделать типо начало поменять ^text[ /b] [ /b] на <b>text</b> [ /b] | |
|
|
|
|
|
|
|
для: seitbekir
(11.02.2010 в 16:49)
| | кривит!!!!!!!!!!!!!!!!!! ))))
покажи пример BBCoda который он с кривит?
не выдумывай велосипед! | |
|
|
|
|
|
|
|
для: freeing
(11.02.2010 в 16:54)
| | наверное сидит, тестит _))))))))))))))))))))))))) | |
|
|
|
|
|
|
|
для: seitbekir
(11.02.2010 в 14:36)
| | Если делать именно проверку, то через стек | |
|
|
|
|
|
|
|
для: Тень&
(11.02.2010 в 18:14)
| | (может покажусь дебилом но)что такое стек? | |
|
|
|
|
|
|
|
для: seitbekir
(11.02.2010 в 18:38)
| | Организация данных в виде очереди с одним входом, т.е. кто первым входит - выходит последним, кто последним входит, выходит первым
| - |
| - |
| - |
| - |
-----
|
| |
|
|
|
|
|
|
|
для: seitbekir
(11.02.2010 в 14:36)
| | а вот мне интересно, какой уровень срочности?
В любой из трех основных валют. | |
|
|
|