Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php和javascript上转义希伯来文双引号_Javascript_Php_Escaping_Hebrew - Fatal编程技术网

在php和javascript上转义希伯来文双引号

在php和javascript上转义希伯来文双引号,javascript,php,escaping,hebrew,Javascript,Php,Escaping,Hebrew,我在基于php的多语言网站上工作 为了支持多语言,我使用如下本地化文件 [本地化.en US.php] $lang_code = "en-US"; $is_rtl = false; . . . define("WORD_EMAIL", "e-mail"); define("WORD_NAME", "name"); . . . 定义词的使用方式如下 [HTML] <?=WORD_EMAIL?> : <input type="text" name="email"/>

我在基于php的多语言网站上工作

为了支持多语言,我使用如下本地化文件

[本地化.en US.php]

$lang_code = "en-US";
$is_rtl = false;

.
.
.

define("WORD_EMAIL", "e-mail");
define("WORD_NAME", "name");

.
.
.
定义词的使用方式如下

[HTML]

<?=WORD_EMAIL?> : <input type="text" name="email"/>
<?=WORD_NAME?> : <input type="text" name="name"/>
:
: 
[Javascript]

if(frm.email.value==="") {
 alert("<?=WORD_EMAIL?> required.");
 return false;
}
if(frm.email.value==“”){
警惕(“必需”);
返回false;
}
这个问题发生在我学习希伯来语的时候

希伯来语的“e-mail”一词中有双引号

我试图逃避双重引用

为了避免双重引用

PHP需要一个反斜杠,javascript需要一个又一个反斜杠

所以我在双引号前加了3个反斜杠。

它显示javascript警报上的属性。但在HTML上出现反斜杠(对于javascript)

是的,我知道使用单引号可以简单地解决这个问题

但是本地化文件中出现了一个例外(一些法语单词使用单引号)


有人能帮忙吗?欢迎提供任何线索。

您始终需要为要嵌入的上下文编码或转义值。在将任何内容放入HTML时,您需要对其进行HTML编码,除非您无意中希望将这些值解释为HTML。在将任何内容放入Javascript源代码时,您需要在那里正确地转义它,而JSON编码恰好是正确的技术:

<?= htmlspecialchars(WORD_EMAIL, ENT_COMPAT, 'UTF-8'); ?> : <input type="text" name="email"/>
警报(+“必需”);
另见

我认为你的方法有缺陷;“需要”似乎是非常不充分的本地化。您需要研究一些合适的工具,比如gettext以及Javascript的实现/类似工具


*谷歌翻译,我不会说希伯来语…

沙巴特沙洛姆·戈伊姆也许这会对你有所帮助

如果你把所有的翻译放在一个数组中会容易得多。然后可以使用
json\u encode()
将该数组正确发送到javascript。您可以使用
alert(+“必需”)。当然,当输出到html时,您需要
htmlspecialchars()
alert(<?= json_encode(WORD_EMAIL); ?> + " required.");