Javascript 使用实体转义PHP echo中的JS
(关于在PHP中转义JS,在SE上有很多问题,但我仍然无法确定在所有情况下作为规则使用的最佳方法。) 考虑页面上的脚本:Javascript 使用实体转义PHP echo中的JS,javascript,php,escaping,Javascript,Php,Escaping,(关于在PHP中转义JS,在SE上有很多问题,但我仍然无法确定在所有情况下作为规则使用的最佳方法。) 考虑页面上的脚本: echo '<a class="x2delete" onclick="if ( confirm("Are you sure you want to delete " + ' . $img . ') ) { DeleteImage('."'".$img."'"." ,' ".$count."'".'); return false; }" href="javascri
echo '<a class="x2delete" onclick="if ( confirm("Are you sure you want to delete " + ' . $img . ') ) { DeleteImage('."'".$img."'"." ,' ".$count."'".'); return false; }" href="javascript:;"></a>';
我还尝试了'
/\
,\/
,以及其他各种方法,但所有转义方法都失败了,直到我决定只使用正确的XML实体表示形式“
因此,“
适用于此特定代码。(甚至可以认为是逃跑吗??)
我的问题是:
进行转义“
在php中回显js时是否对我有效?
我是否可以一直使用它而不是其他转义方法(对我来说,这只是尝试和错误…)confirm()
?“只写”旁边加括号
如果确认(“您确定要删除吗?”)
给我一个缺少括号的错误。我确信它将在单个条件/行中工作。您需要插入一个文本反斜杠,这意味着使用
\
:
echo '<a class="x2delete" onclick="if ( confirm(\\"Are you sure you want to delete...
echo'这是我们想要的最终结果,对吗
单引号或双引号:
confirm('are you sure you want to delete?');
单引号:
confirm("are you sure you want to delete?");
双引号:
confirm('are you sure you want to delete?');
所以现在的问题是,如何将其包装成php代码“练习。唯一的好做法是以对您、您在同一团队中工作的同事程序,以及以后可能加入团队的joiner程序员可读的方式进行操作。在这里,我将分享我在参与的几个项目中看到的一些实践
一旦项目中存在一种模式,建议遵循该模式。所以,如果您的项目遵循反斜杠转义,那么最好就是这样做
练习1:关闭php标记,编写html,再次打开php。为内联变量打开php
?>
<a onclick="confirm('Do you like this patter?')" href="<?php echo $ref_link ?>">Click Me!</a>
<?
它将被解析为:
onclick="confirm("Is this ok?")"
至于你的问题1-3,即使每个人都告诉你“是”,它也会起作用。你不可能真正知道,除非你自己尝试。浏览器变了,语言变了,编译器也变了,所以最好的方法就是亲自测试它
关于你的最后一个问题:
if confirm('Are you sure you want to delete ?')
如果
是一个语言构造,并且条件必须包含在一对括号中,则不能执行该操作。通过使用一个语句体,可以跳过条件体{}
。我相信这在编程语言中很常见,至少在我尝试过的那些语言中是如此
它在语法上是有效的。但是它被认为是不好的风格。好的。谢谢但我并不是在寻找特定于代码的答案——现在我的代码也可以与
“
一起使用。我的问题是,在PHP echo(即,或等效实体)中始终使用它是否合适……您可以尝试在CodeReview()中问这个问题社区期待着回答这样的问题。@ Joraid -但我不是在寻找一个代码特定的答案(同样,我对这两个站点之间的重叠感到困惑)+ 1你的问题非常有趣。所以主要是针对特定代码的答案,它可以考虑几个有效的答案(一个观点)。然后,正如我所注意到的,这里的人不喜欢这种东西。然而,通过阅读CR中的一些问题,他们实际上讨论了模式和实践。但是关于实体
?据我所知,“将很好地工作。但我个人不会使用它,因为它会降低代码的可读性(我不喜欢它的外观)并且有更多的字符,因此,增加文件大小和更多的网络传输时间(如果你有数百个字符串)。尽管这不会有多大影响。但这是我的观点。此外,我从未见过有人真正遵循这种做法。
onclick='confirm("Is this ok?")'
onclick="confirm("Is this ok?")"
if confirm('Are you sure you want to delete ?')
if(true)alert("yes"); else alert("no");