URL デコードされた文字列からすべてのバックスラッシュを削除しようとしていますが、\ を削除して URL デコードされた文字列を出力するのではなく、\ を出力しています。
私の問題を教えてください。
<?php
$json = $_GET['ingredients'];
echo urldecode(str_replace($json,$json, "\\"));
?>
URL デコードされた文字列からすべてのバックスラッシュを削除しようとしていますが、\ を削除して URL デコードされた文字列を出力するのではなく、\ を出力しています。
私の問題を教えてください。
<?php
$json = $_GET['ingredients'];
echo urldecode(str_replace($json,$json, "\\"));
?>
を使用したいstripslashes()
のは、まさにそれが目的だからです。また、短く見えます:
echo urldecode(stripslashes($json));
ただし、 magic_quotes を無効にすることを検討する必要があります。
代わりにこれを試してください。str_replace の引数が正しくありません。
<?php
$json = $_GET['ingredients'];
echo urldecode(str_replace("\\","",$json));
?>
php.net のstr_replace docsによると、最初の引数は検索対象、2 番目は置換対象、3 番目は検索対象の文字列です。したがって、これを探しています。
str_replace("\\","", $json)
str_replace を間違って使用しています
str_replace("\\","", $json)
これは 100% 正しく機能しています。
$attribution = str_ireplace('\r\n', '', urldecode($attribution));