0

私はそれがばかげた質問であることを知っています、しかし私は私の問題のために何もグーグルすることができません。

私は持っ$q = "This is\\same text";ています

$q = stripslashes($q);

したがって、$q"This issame text"!に等しくなります。1つの円記号を保存するにはどうすればよいですか?

ありがとうございました。

4

3 に答える 3

2

スクリプトは、実際には、それが伝えていることを実行します。

では$q、二重の円記号は単一の円記号に評価され(最初の円記号は2番目の円記号をエスケープします)、その後、円記号が削除されます。

メタ文字を評価しない場合は、一重引用符を使用する必要があります。

$q = 'This is \\some text';
// String is now: This is \\some text

$q = stripslashes($q);
// String is now: This is \some text

編集 Michaelsの回答のコメントによると、入力に有効な円記号がいくつあるかについて混乱が生じる可能性があります。次の入力を検討してください。

$q1 = "This is\\\some \text";
$q2 = 'This is\\\some \text';

最初のものは実際にはを含みますThis is \\some <TAB>ext。これは、PHPが無効な制御文字をそのまま残しているためです。\sとは対照的に、\tは無効な制御文字であるため、そのまま残されます。

ただし、2番目の文字列には、評価が適用されないため、文字通り一重引用符で囲まれた内容が含まれます。

于 2012-01-23T16:12:21.443 に答える
0

実際

$q = "This is\\same text";

バックスラッシュが1つ含まれています。

于 2012-01-23T16:13:29.743 に答える
0

1つのバックスラッシュをそこに残したい場合は、彼を2倍にします

$q = "This is\same \\ text";

$q = stripslashes($q);

なる

This issame \ text
于 2012-01-23T16:13:56.857 に答える