Проблем с preg_replace!

heminei

Registered
Правя си bbcode и имам пролем:

function bbcode($text)
{
$text=preg_replace("/\[url\](.+?)\[\/url\]/s", '<a href="$1">$1</a>',$text);
$text=preg_replace("/\[url\=(.+?)\](.+?)\[\/url\]/s", '<a href="$1">$2</a>',$text);
$text=preg_replace("/\[b\](.+?)\[\/b\]/s", '<b>$1</b>',$text);
$text=preg_replace("/\[u\](.+?)\[\/u\]/s", '<u>$1</u>',$text);
$text=preg_replace("/\[i\](.+?)\[\/i\]/s", '<i>$1</i>',$text);
$text=preg_replace("/\[s\](.+?)\[\/s\]/s", '<s>$1</s>',$text);
$text=preg_replace("/\[code\](.+?)\[\/code\]/s",'<div class="code">$1</div>',$text);
$text=preg_replace("/\[quote\](.+?)\[\/quote\]/s",'<table cellpadding="0" cellspacing="0"><tr><td><div style="background-color: #bbbbbb ; ">Цитат:</div><td></tr><tr><td><div class="quote">$1</div></td></tr></table>',$text);
$text=preg_replace("/\[img\](.+?)\[\/img\]/s", '<img src="$1" alt="" title="">',$text);
$text=preg_replace("/\[blink\](.+?)\[\/blink\]/s", '<blink>$1</blink>',$text);
return $text;
}


Това искам да го обърна на обратно:



Код:
function bbcode1($text)
{
$text=preg_replace("/\<a href='(.+?)'\>(.+?)<\/a>/s", '[url=$1]$2[/url]',$text);  \\ не работи!!!
$text=preg_replace("/\<b\>(.+?)\<\/b\>/s", '[b]$1[/b]',$text); \\Rаботи
$text=preg_replace("/\<u\>(.+?)\<\/u\>/s", '[u]$1[/u]',$text); \\Rаботи
$text=preg_replace("/\<i\>(.+?)\<\/i\>/s", '[i]$1[/i]',$text); \\Rаботи
$text=preg_replace("/\<s\>(.+?)\<\/s\>/s", '[s]$1[/s]',$text); \\Rаботи
$text=preg_replace("/\<div class='code'\>(.+?)\<\/div\>/s",'[code]$1
',$text); \\ не работи!!!
return $text;
}[/code]


Предварително благодаря!!!
 
Код:
function bbcode1($text)
{
$text=preg_replace("/\<a href='(.+?)\' target="_blank" \>(.+?)\<\/a\>/s", '[url=$1]$2[/url]',$text);  \\ не работи!!!
$text=preg_replace("/\<b\>(.+?)\<\/b\>/s", '[b]$1[/b]',$text); \\Rаботи
$text=preg_replace("/\<u\>(.+?)\<\/u\>/s", '[u]$1[/u]',$text); \\Rаботи
$text=preg_replace("/\<i\>(.+?)\<\/i\>/s", '[i]$1[/i]',$text); \\Rаботи
$text=preg_replace("/\<s\>(.+?)\<\/s\>/s", '[s]$1[/s]',$text); \\Rаботи
$text=preg_replace("/\<div class='code'\>(.+?)\<\/div\>/s",'[code]$1
',$text); \\ не работи!!!
return $text;
}[/code]

или

Код:
function bbcode1($text)
{
$text=preg_replace("/\<a href='(.+?)\' target="_blank" \>(.+?)\<\/a\>/s", '[url=$1]$2[/url]',$text);  \\ не работи!!!
$text=preg_replace("/\<b\>(.+?)\<\/b\>/s", '[b]$1[/b]',$text); \\Rаботи
$text=preg_replace("/\<u\>(.+?)\<\/u\>/s", '[u]$1[/u]',$text); \\Rаботи
$text=preg_replace("/\<i\>(.+?)\<\/i\>/s", '[i]$1[/i]',$text); \\Rаботи
$text=preg_replace("/\<s\>(.+?)\<\/s\>/s", '[s]$1[/s]',$text); \\Rаботи
$text=preg_replace("/\<div class='code'\>(.+?)\<\/div\>/s",'[code]$1
',$text); \\ не работи!!!
return $text;
}[/code]

Дано стане.
 
сега ще го обесня по прост начин как можеш да си направиш примерен bbcode лесно да речем имаш входни и изходни данни входните са ти да речем кодовете за емотикони, които искаш да трансформираш в картинки смисал като напишеш :-8 при извеждане на ти излезе емотиконата и така слагаш да речем кодовете в един масив с array пример :

Код:
$first=array(":-8", ":-D");

така, след това правим втори, който реално ще замества данните въведени в първия array
Код:
$second=array("<img src='images/emoticon.png'>", "<img src='images/emoticon2.png'");

така след това правим така :

Код:
ksort($first);
ksort($second);

и следва вече крайната част, заместването

Код:
$new = str_replace($first, $second, $text");

сега тук да поясня, $text трябва да бъде заместено с променливата, която взима текста, на който искаш да сложиш този bbcode да речем променливата ти се казва $text и се извежда
така $text=$row['text'];

дано си ме разбрал, незнам как по-простичко да го обесня .. ако има нещо питай ..
 

Back
Горе