0

这是我的代码:

$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

我已经尝试过单引号、双引号和转义的每种类型的组合??

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

谢谢!!

4

4 回答 4

3

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

$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 手册

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

于 2011-05-25T21:26:02.930 回答
2

在这种情况下,建议使用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 。

于 2011-05-25T21:27:42.337 回答
1

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

于 2011-05-25T21:26:30.393 回答
0

问题是 url_abs 周围的单引号。

于 2011-05-25T21:26:10.440 回答