2010-07-13 4 views
0

Je veux donner l'oppurtunity à l'utilisateur s'il veut que ses smileys soient remplacés par des smileys image.Fonction PHP bbcode make optionnel pour remplacer les smileys

J'ai essayé ceci.

bbcode($text, TRUE);

function bbcode($str, $smileys = false) 
{ 
    $str = htmlentities($str); 

$find = array(

if ($smileys == true) { 
':p', 
} 

    '/\[b](.*?)\[\/b]/i', 
    '/\[u](.*?)\[\/u]/i', 
'/\[i](.*?)\[\/i]/i', 
'/\[img](.*?)\[\/img]/i', 
'/\[url](.*?)\[\/url]/i', 
'/\[color=(.*?)\](.*?)\[\/color]/i', 
'/\[size=(.*?)\](.*?)\[\/size]/i' 
); 

$replace = array(
if ($smileys == true) { 
    '<img src="/img/toungue.gif">', 
    } 
    '<strong>$1</strong>', 
    '<u>$1</u>', 
    '<i>$1</i>', 
    '<img src="$1" alt="$1" />', 
    '<a href="$1" target="_blank" rel="nofollow" title="$1">$1</a>', 
    '<span style="color:$1">$2</span>', 
    '<span style="font-size:$1">$2</span>' 
); 

$str = preg_replace($find, $replace, $str); 



return nl2br($str); 
} 

Je suppose que u ne pouvez pas avoir si clause dans le tableau.

Et j'ai aussi essayé:

function bbcode($str, $smileys = false) 
{ 
$str = htmlentities($str); 

$find = array(
'/\[b](.*?)\[\/b]/i', 
    '/\[u](.*?)\[\/u]/i', 
'/\[i](.*?)\[\/i]/i', 
'/\[img](.*?)\[\/img]/i', 
'/\[url](.*?)\[\/url]/i', 
'/\[color=(.*?)\](.*?)\[\/color]/i', 
'/\[size=(.*?)\](.*?)\[\/size]/i' 
); 

$replace = array(
'<strong>$1</strong>', 
'<u>$1</u>', 
'<i>$1</i>', 
'<img src="$1" alt="$1" />', 
'<a href="$1" target="_blank" rel="nofollow" title="$1">$1</a>', 
'<span style="color:$1">$2</span>', 
'<span style="font-size:$1">$2</span>' 
); 

if ($smileys == true) { 

$find = array(
':p' 
); 

$replace = array(
'<img src="/img/toungue.gif">' 
); 
} 

$str = preg_replace($find, $replace, $str); 



return nl2br($str); 
} 

Égal à = Pas délimiteurs de fin ':' trouvé dans functions.php sur la ligne 68

Répondre

1

Je suppose que u ne pouvez pas avoir si clause dans le tableau.

Oui, vous pouvez, mais cela s'appelle un ternary.

Questions connexes