在img src元素之外呈现PHP变量,需要转义建议


Rendered PHP Variable outside of the img src element, need escaping advice

嘿,伙计们,我有以下代码:

foreach($collection as $img)
   {
$image_id = $img['imageid'];
$thumbwidget  = wp_get_attachment_image_src($image_id, 'full');
$gallery  .= '<a class="fav-image-a" href="http://www.bangstyle.com/haircut-detail/?uid='.$uid.'&img_id='.$image_id.'&ucolid='.$user_id.'&catid='.$col_id.'&theater">';
$gallery .= '<img src="';
$gallery .= thumbGen($thumbwidget[0],259,320,'valing=top');
$gallery .= '">';
$gallery  .= '</a>';                
   }

我想我可能有错误的转义顺序。渲染变量在渲染时不会停留在img src中。我想这和我逃到某个地方有关。

live url可见于http://bangstyle.com/test-widget/

你可以看到发生了什么。呈现的元素在顶部

为什么里面有额外的引号?你正在生成的是:

<img src="'THUMBWIDGETURL_IS_INSERTED_HERE'">

你可能想要的是:

<img src="THUMBWIDGETURL_IS_INSERTED_HERE">
要做到这一点,只需删除额外的'':
$gallery .= '<img src="'.$thumbwidgeturl.'">';

注意事项:

  • 在PHP中,单引号和双引号都可以用来生成字符串字面值。
  • 每一个应该在一对中使用,这一对构成一个字符串字面值。因此,在您的示例中,您有两个字符串字面量和一个变量与点(.)操作符组合(连接)。
  • 在单引号内,单引号需要转义,在双引号内,双引号需要转义。其他类型的引号可以自由使用,不需要转义。
  • 单引号内的字符串按原样处理,双引号内的字符串解释为变量。
  • PHP文档中关于字符串的更多信息。

这个怎么样:

$gallery .= "<img src='"" . $thumbwidgeturl . "'">";

甚至:

$gallery .= '<img src="' . $thumbwidgeturl . '">';