PHP完全转义属性内的引号

时间:2015-01-18 12:39:13

标签: php

我希望在转到网址之前收到确认消息,但是在转发消息中的引号时会遇到问题。

出现此错误:

Error: SyntaxError: missing ) after argument list 
Code: return confirm('Please confirm delete: 'iphone'');

当我var_dump输出时,它正确地将引号转换为:'

此处测试代码:

<?php

$text = 'Please confirm delete: \'%s\'';

$config_text = sprintf($text, 'iphone');

?>

<a href="" onclick="return confirm('<?php echo $config_text; ?>');">Click 1</a>

<br /><a href="" onclick="return confirm('<?php echo htmlspecialchars($config_text, ENT_QUOTES, 'UTF-8'); ?>');">Click 2</a>

<br /><a href="" onclick="return confirm('<?php echo mb_convert_encoding($config_text, 'HTML-ENTITIES', 'UTF-8'); ?>');">Click 3</a>

我知道这个问题已经被许多其他时间问过,很可能会被关闭,但我尝试过的一切都没有用。

1 个答案:

答案 0 :(得分:2)

使用双引号变量$ text

,所有三次点击都可以正常工作
$text = "Please confirm delete: \'%s\'";

您应该看到正确的网页源代码:

<a href="" onclick="return confirm('Please confirm delete: \'iphone\'');">Click 1</a>
<br /><a href="" onclick="return confirm('Please confirm delete: \&#039;iphone\&#039;');">Click 2</a>
<br /><a href="" onclick="return confirm('Please confirm delete: \'iphone\'');">Click 3</a>