php变量中的单引号和双引号

时间:2013-04-24 16:39:04

标签: php javascript string quotes string-concatenation

如何将此代码与所有单引号和双引号结合使用。 我尝试了几种组合,但我无法使其发挥作用。 这是我的最后一次尝试所以请帮助。

使用长字符串时,什么是好方法?

$html .='<a href="" onClick="$.ajax({type: "POST",url: "delete_pic.php",data:{id:"'.$row['id'].'",var:"V"},cache: false});" style="background:url("images/icons/delete.png" 50% -19px no-repeat;width:16px;height:16px;float:left;margin-left:10px;margin-top: 6px;"></a>';

4 个答案:

答案 0 :(得分:3)

我会将您的样式移动到外部样式表以缩短它,然后只是在字符串中转义“\”“for”之类的引号。

$html .="<a href=\"\" onClick=\"$.ajax({type: \"POST\",url: \"delete_pic.php\",data:{id:\".$row["\id\"].",var:\"V\"},cache: false});\" class=\"mystyle\"></a>";

未经测试,因为我没有您的代码:)

答案 1 :(得分:2)

最佳解决方案是使用HEREDOC,这完全消除了在PHP级别转义任何引用的需要:

$html .= <<<EOL
<a href="onclick('\$.ajax({ etc.....

EOL;

请注意,您仍将受到嵌入在heredoc中的任何语言的引用需求的约束。但至少你不必担心由于不平衡/未转义的引号而导致PHP语法错误。

答案 2 :(得分:1)

我遵循以下规则:php字符串封装在单引号中,因此html的属性是双引号。
属性中的任何引号都必须是转义单引号\'

这样:

$html .='<a href="" onClick="$.ajax({type: \'POST\',url: \'delete_pic.php\',data:{id:\''.$row['id'].'\',var:\'V\'},cache: false});" style="background:url(\'images/icons/delete.png\' 50% -19px no-repeat;width:16px;height:16px;float:left;margin-left:10px;margin-top: 6px;"></a>';

答案 3 :(得分:1)

你应该只是逃避其他双引号内的双引号(如果这是有道理的)。 :)

$html .='<a href="" onClick="$.ajax({type: \"POST\",url: \"delete_pic.php\",data:{id:\"'.$row['id'].'\",var:\"V\"},cache: false});" style="background:url(\"images/icons/delete.png\" 50% -19px no-repeat;width:16px;height:16px;float:left;margin-left:10px;margin-top: 6px;"></a>';

那(或类似的东西)应该有效。