2015-07-10 104 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; 
}