我被難倒了什麼應該是一個非常簡單的str_replace函數。 在我的數據庫中,我有一個Minecraft服務器motd(當天消息)的字段。當我從服務器收集數據時,我將包括motd在內的數據存儲在我的數據庫中。str_replace不能在數據庫返回工作
服務器能夠通過添加一個顏色代碼來對顏色進行着色,我已經將其存儲在數據庫中作爲&部分,然後是指定顏色的數字。我試圖使用str_replace將& sectnumber轉換爲具有實際顏色的html元素。我想出了以下代碼:
if ($server_data['show_motd'] == 1) {
$motd = $server_data['motd'];
$motd = str_replace("§0","</span><span style=\"color:#000\">", $motd);
$motd = str_replace("§1","</span><span style=\"color:#00A\">", $motd);
$motd = str_replace("§2","</span><span style=\"color:#0A0\">", $motd);
$motd = str_replace("§3","</span><span style=\"color:#0AA\">", $motd);
$motd = str_replace("§4","</span><span style=\"color:#A00\">", $motd);
$motd = str_replace("§5","</span><span style=\"color:#A0A\">", $motd);
$motd = str_replace("§6","</span><span style=\"color:#FA0\">", $motd);
$motd = str_replace("§7","</span><span style=\"color:#AAA\">", $motd);
$motd = str_replace("§8","</span><span style=\"color:#555\">", $motd);
$motd = str_replace("§9","</span><span style=\"color:#55F\">", $motd);
$motd = str_replace("§a","</span><span style=\"color:#5F5\">", $motd);
$motd = str_replace("§b","</span><span style=\"color:#5FF\">", $motd);
$motd = str_replace("§c","</span><span style=\"color:#F55\">", $motd);
$motd = str_replace("§d","</span><span style=\"color:#F5F\">", $motd);
$motd = str_replace("§e","</span><span style=\"color:#FF5\">", $motd);
$motd = str_replace("§f","</span><span style=\"color:#FFF\">", $motd);
echo "
<tr>
<td class=\"serverdisplayspan\">MOTD:</td>
<td class=\"serverdisplaylidet\"><span>$motd</span</td>
</tr>
";
}
但是,沒有一個str_replace函數在做任何事情。奇怪的是,當我與
$motd = "§cWelcome to §bSkyBlock§c!"
這就是存儲在數據庫中替換
$motd = $server_data['motd'];
,它完美的作品。沒有str_replaces,這兩個變量看起來完全一樣。我甚至使用gettype()檢查每個變量的類型() 並且它們都是字符串。我也嘗試過對數據庫結果的utf_decode(),但似乎沒有任何工作。
數據庫結果和我剛輸入的字符串之間有一些區別嗎?我找不到它是什麼,但顯然必須有一個。
謝謝。
所以在數據庫中的值是'&sectcWelcome到&sectbSkyBlock&sectc!'? – 2013-04-05 02:51:54
是的,數據庫中的值就是這個。 – mongy910 2013-04-05 02:52:51
而且很明顯,當你使用'$ motd =「&sectc歡迎來到&sectbSkyBlock&sectc!」' - 所有字符串替換函數都可以使用? – 2013-04-05 02:53:30