2011-07-04 17 views

答えて

4

いいえ、json_encode(JSON = Javascript表記)を使用してください。

var foo = <?php echo json_encode('Foo "Bar" Baz'); ?>; 

htmlspecialcharsは、HTMLで特別な意味を持つ文字をエスケープします。 Javascriptのリテラルには、必要な他の特殊文字があるので、HTMLエスケープは意味をなさない。

+0

そうですね。しかし、私の上司は「これは完全に安全ですね、そうじゃない?私は彼に不平を言うことはできません.. – freddiefujiwara

+1

@freddie引用符がエスケープされ、あなたの値を常に引用符で囲んでいる(JSで)場合は、それは本当かもしれません。それは仕事のための間違ったツールです、そして、あなたはおそらくあなたが必要以上にあなたの価値を混乱させているでしょう。 – deceze

+0

JSリテラルを含むHTML全体をエスケープしたり、JavaScriptが特別なHTML構文(通常はタグや属性)によってのみ実行され、そのHTML構文をエスケープするので、この混乱は命令=> JSは実行されません:) –

関連する問題