1

したがって、データをデータベースに保存すると、PHP は一重引用符または二重引用符に \ を追加します。それはいいです。

ただし、データが json_encode(); を使用してクライアントに返される場合。McDonald's のような TEXT は DB に McDonald's として保存されますが、PHP から js に戻されると、McDonald\'s としてエンコードされます。

私はjQueryを使用しているので、簡単にそれを行うためのプラグインはありますか? または、スラッシュを正しく削除するために使用する関数はありますか? 明らかに、 のようなケースがあれば \\\\s、関数は を返す必要があり\sます。:)

申し訳ありません。質問を複雑にしすぎたと思います。もっとシンプルにしたらどうだろう..

JavaScript 変数がある場合:

var abc = "McDonald\'s";
var bcd = "I need a slash \\ ";
var cde = "save the double quote \"";

\' を削除するにはどうすればよいですか? どの正規表現を使用すればよいですか?

4

5 に答える 5

8

スラッシュを挿入するこの「魔法の引用符」機能を使用することは、実際には非常に推奨されていません。一般に、データをエスケープ形式でデータベースに格納することは望ましくありません。出力でエスケープとエンコードを行いたい。

于 2010-10-25T01:28:56.913 に答える
4

私は主な問題を処理します -magic_quotes有効になっています。

私はそれを無効にして、データベースで適切なエスケープ方法を使用します。

そうすれば、PHP が魔法のようにスラッシュを追加することを心配する必要はありません。

を使用するときにスラッシュについて話している場合json_encode()、それには理由があります。

JavaScript でJSON パーサーを使用しても、それらは表示されません (他の何かが不適切にエンコードされていない限り)。

于 2010-10-25T01:29:14.947 に答える
1

これもやってみる

function stripslashes (str) {

  return (str + '').replace(/\\(.?)/g, function (s, n1) {
    switch (n1) {
    case '\\':
      return '\\';
    case '0':
      return '\u0000';
    case '':
      return '';
    default:
      return n1;
    }
  });
}
于 2013-07-30T06:20:22.523 に答える
1

はい。 http://phpjs.org/functions/stripslashes:537

于 2010-10-25T01:28:33.137 に答える
0

データベースに保存する前に、 http ://au.php.net/manual/en/function.mysql-real-escape-string.phpを使用してください。

ユーザーインターフェイスに書き込む前に、次のようなカスタム関数を使用してください。

function unescape($string)
{

$search = array("\\x00", "\\n", "\\r", "\\\x1a");

$replace = array("\x00","\n", "\r", "\x1a");

$retString = str_replace($search, $replace, $string);

$search = array("\'", '\\'.'"');

$replace = array(  "'", '"',);

$retString = str_replace($search, $replace, $retString);

$search = array("\\\\");

$replace = array( "\\");

$retString = str_replace($search, $replace, $retString);

return $retString

}
于 2010-10-25T02:10:41.230 に答える