繁体   English   中英

php 在包含 javascript 和引号时遇到问题?

[英]php having issue with including javascript and quotes?

这是我的代码:

$buffer .= '<legend>'.$thisField.'</legend><input type="text" name="'.$thisField.'" id="'.$thisField.'"/> <a href="javascript:;" onClick="mcImageManager.browse({fields : 'url_abs'});">[Pick file]</a><br /><small>360px W x 240px H</small><br /><br />';

它打破了语法错误,意外的 T_STRING

我已经尝试过单引号、双引号和 escaping 的每种组合?

我不知所措,我错过了什么?

谢谢!!

只需使用反斜杠转义字符串中的引号即可:

$buffer .= '<legend>'.$thisField.'</legend><input type="text" name="'.$thisField.'" id="'.$thisField.'"/> <a href="javascript:;" onClick="mcImageManager.browse({fields : \'url_abs\'});">[Pick file]</a><br /><small>360px W x 240px H</small><br /><br />';

请参阅PHP 手册

要指定文字单引号,请使用反斜杠 (\) 对其进行转义。

在这种情况下,建议使用HEREDOC字符串,以提高可读性:

$buffer .= <<<END
  <legend>$thisField</legend>
  <input type="text" name="$thisField" id="$thisField"/>
  <a href="javascript:;" onClick="mcImageManager.browse({fields : 'url_abs'});">[Pick file]</a>
  <br /><small>360px W x 240px H</small><br /><br />
END;

这避免了必须转义任何引号。 您可以在这样的块中按原样编写 $variables 。

正如荧光笔告诉你的那样, php 将在{fields: 'url_abs'}附近失败。 您在单引号字符串中,因此您必须转义字符串中的单引号: {fields: \'url_abs\'}

问题是 url_abs 周围的单引号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM