替换特殊字符 php



我现在有问题。当有人订购包含字符"æ"的东西时,它会变成"à¦",这会破坏mysql查询,并在那里结束句子。举个例子,我得到了这个:

#55*2*195*1 - 1,%%%%38. Burger dobbelt %%%%Kommentar%%%%Burgeren skal và¦re med friske agurker i stedet for syltede%%%%og uden ost. Pॠforhà¥nd tak %%%%%%%%100. Lasagne %%%%Dressing%%%%Ingen dressing,*;;124.20;;Niklas Smietana;;;;7;;*#

但是当它将其插入数据库时,它最终是这样的:

#55*2*195*1 - 1,%%%%38. Burger dobbelt %%%%Kommentar%%%%Burgeren skal v

它就到此为止了。所以我想做的是,我想替换"字符串"中的每一个特殊字符,如"æ"、"ø"、"å"、"ü"、"ö"等,所以它变成了"ae"、"oe"、"aa"、"u"、"o"。我已经尝试过str_replace但它不会这样做。

我的代码:

$product_name = $row['product_names'];
$product_name = str_replace("ø", "oe", $product_name);
$product_name = str_replace("É", "É", $product_name);
$product_name = str_replace("Ã", "à", $product_name);
$product_name = str_replace("¿", 'oe', $product_name);
$product_name = str_replace("¾", 'ae', $product_name);
$product_name = str_replace("æ", 'ae', $product_name);
$product_name = str_replace("Œ", 'aa', $product_name);
$product_name = str_replace("å", 'ae', $product_name);
$product_name = str_replace("š", 'oe', $product_name);
$product_name = str_replace("Ÿ", 'u', $product_name);

这里有人对此有解决方案吗?

提前谢谢。

您应该使用 mysql_real_escape_string()mysqli_real_escape_string() 来防止 mysql 注入并转义特殊字符。

最新更新