何が起こっているのか、それぞれの結果 (望ましい動作) は次のとおりです。
echo urlencode('q&a'); // q%26a
echo str_replace('&', '%26', 'q%26a');
しかし、ワードプレスでこれを試すと、壊れます:
$title = strtolower(str_replace(' ', '-', get_the_title()));
echo urlencode($title); // q%26%23038%3Ba
echo str_replace('&', '%26', $title); // q%26#038;a
タイトルだけをエコーするとq&a
、これはクエリ文字列になるため、アンパサンドをエスケープしようとしています。何が起こっているのか/これを修正する方法を知っている人はいますか?
編集
私は最近、 3文字しか意味をなさないvar_dump
のが$title
吐き出されることに気付きました。それはさらに役立ちますか?string(8) "q&a"
q&a