2015-07-10 111 views
0

的查找和替换功能的一部分,不工作的一些原因。我的语法错了吗?str_replace函数在解码功能不工作

function display($data) { 

$new = str_replace('<br />',"\n",$data); 
$newer = htmlspecialchars($new); 
    $search = array('&lt;b&gt;', '&lt;/b&gt;', '&lt;i&gt;', '&lt;/i&gt;', '&lt;u&gt;', '&lt;/u&gt;', '\r\n'); 
    $replace = array('<b>', '</b>', '<i>', '</i>', '<u>', '</u>', '<br />'); 

    $newest = str_replace($replace, $search, $newer); 

    return $newest; 
} 
+2

什么的'$ data'的价值开始吗? –

+1

查看参数顺序:http://php.net/str_replace手册比SO更快更简单。 – AbraCadaver

+0

哇!究竟是如何扭转的?这是我之前创建的复制和粘贴函数的修改,可以正常工作。我不知道为什么那些从原来的方式中被扭转过来。太奇怪了! – thinkofacard

回答

0

在这样试试:

function display($data) { 

$new = str_replace('<br />',"\n",$data); 
$newer = htmlspecialchars($new); 
$replace = array('<b>' => '&lt;b&gt;', '</b>' => '&lt;/b&gt;', '<i>' => '&lt;i&gt;', '</i>'=> '&lt;/i&gt;', '<u>' => '&lt;u&gt;', '</u>' => '&lt;/u&gt;', '<br />' => '\r\n'); 
$newest = $newer; 

foreach($replace as $rep => $find){ 
    $newest = str_replace($rep , $find, $newest); 
} 
    return $newest; 
}