2
$a = $_GET['a'];
$d = array("æ", "ø", "å", "Æ", "Ø", "Å");
$e = array("&aelig", "&oslash", "&aring", "&AElig", "&Oslash", "&Aring");
$new = str_replace("$d","$e","$a");
echo $new;

谁能告诉我我在这里做错了什么。如果我只写,它工作得很好:

$a = $_GET['a'];
new = str_replace("ø","&oslash","$a");
echo $new;

然后至少替换“ø”,但我真的想用两个数组而不是一次替换一个字母,6次......

4

1 回答 1

5
$new = str_replace($d, $e, $a);

您正在传递变量,而不是由变量组成的字符串。

如果您比较此代码中的输出

$a = array(123);
var_dump($a);
var_dump("$a");

您会注意到,第一个是数组,第二个是字符串,其中数组隐式转换为字符串。

于 2013-01-08T03:04:28.960 回答