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;

次に、少なくとも「ø」が置き換えられますが、一度に1文字ずつ6回置き換えるのではなく、2つの配列でそれを行いたいです...

4

1 に答える 1

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

変数で構成される文字列ではなく、変数を渡しています。

このコードで出力を比較すると

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

最初のものは配列であり、2 つ目は文字列に暗黙的にキャストされた配列を持つ文字列であることに気付くでしょう。

于 2013-01-08T03:04:28.960 に答える