preg_replace

Soul_Stealler

Registered
Нещо не мога да схвана на какъв принцип работи preg_replace.
Къде трябва да добавя в този код кавички, за да се изпълнява само ако е quote="asdf" а не quote=asdf

Код:
$mnenie1=preg_replace("/\[quote\=(.+?)](.+?)\[\/quote\]/s", '<table  cellspacing="1" width="100%" border="0"><tr><td>$1 êàçà:</td></tr><tr><td class="quote" width="100%" style="border:solid 1px black">$2</td></tr></table>',$mnenie1);

:shock:
 
Имам текст:

1.
Код:
[quote="S_Soul"][/quote]

2.
Код:
[quote="S_Soul"][/quote]

Едното е с кавички, другото не е.
Искам да преобразувам този код:
Код:
$mnenie1=preg_replace("/\[quote\=(.+?)](.+?)\[\/quote\]/s", '<table  cellspacing="1" width="100%" border="0"><tr><td>$1 êàçà:</td></tr><tr><td class="quote" width="100%" style="border:solid 1px black">$2</td></tr></table>',$mnenie1);

Да превръща BBcode-a в html, само ако има кавички (пример 2)
 
Код:
Код:
<?
$s1 = '[quote="S_Soul"]test[/quote]';
$s2 = '[quote="S_Soul"]test[/quote]';

$mnenie =  preg_replace("/\[quote\=\"(.+?)\"](.+?)\[\/quote\]/s", '<table  cellspacing="1" width="100%" border="0"><tr><td>$1 êàçà:</td></tr><tr><td class="quote" width="100%" style="border:solid 1px black">$2</td></tr></table>',$s1);

echo $mnenie;

echo "\n";
$mnenie =  preg_replace("/\[quote\=\"(.+?)\"](.+?)\[\/quote\]/s", '<table  cellspacing="1" width="100%" border="0"><tr><td>$1 êàçà:</td></tr><tr><td class="quote" width="100%" style="border:solid 1px black">$2</td></tr></table>',$s2);

echo $mnenie;

?>

Резултат при изпълнение на PHP 5.2
Код:
X-Powered-By: PHP/5.2.0
Content-type: text/html

[quote="S_Soul"]test[/quote]
<table  cellspacing="1" width="100%" border="0"><tr><td>S_Soul êàçà:</td></tr><tr><td class="quote" width="100%" style="border:solid 1px black">test</td></tr></table>

Разбира се, ако няма нищо между отварящия и затварящия quote условието не се изпълнява
 

Back
Горе