8

URL デコードされた文字列からすべてのバックスラッシュを削除しようとしていますが、\ を削除して URL デコードされた文字列を出力するのではなく、\ を出力しています。

私の問題を教えてください。

<?php
$json = $_GET['ingredients'];
echo urldecode(str_replace($json,$json, "\\"));
?>
4

5 に答える 5

13

を使用したいstripslashes()のは、まさにそれが目的だからです。また、短く見えます:

echo urldecode(stripslashes($json));

ただし、 magic_quotes を無効にすることを検討する必要があります。

于 2011-05-08T22:36:55.923 に答える
3

代わりにこれを試してください。str_replace の引数が正しくありません。

<?php
$json = $_GET['ingredients'];
echo urldecode(str_replace("\\","",$json));
?>
于 2011-05-08T22:35:34.887 に答える
3

php.net のstr_replace docsによると、最初の引数は検索対象、2 番目は置換対象、3 番目は検索対象の文字列です。したがって、これを探しています。

str_replace("\\","", $json)
于 2011-05-08T22:36:01.917 に答える
1

str_replace を間違って使用しています

str_replace("\\","", $json)
于 2011-05-08T22:35:15.340 に答える
0

これは 100% 正しく機能しています。

$attribution = str_ireplace('\r\n', '', urldecode($attribution));
于 2012-12-10T16:22:21.393 に答える