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

时间:2013-06-13 17:41:35

标签: php

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

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内。我认为这与我逃离某处有关。

可以在http://bangstyle.com/test-widget/

看到live url

你可以看到发生了什么。渲染的元素位于顶部。

2 个答案:

答案 0 :(得分:3)

为什么内部有额外的报价?你正在制作的是:

<img src="'THUMBWIDGETURL_IS_INSERTED_HERE'">

你可能想要的是:

<img src="THUMBWIDGETURL_IS_INSERTED_HERE">

要做到这一点,只需删除额外的\':

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

需要注意的规则:

  • 在PHP中,单引号和双引号都可用于生成字符串文字。
  • 每个应该成对使用,并且该对构成一个字符串文字。因此,在您的示例中,您有两个字符串文字和一个与点(.)运算符组合(连接)的变量。
  • 在单引号内,单引号需要转义,在双引号内,双引号需要转义。每个引号中的其他类型的引号都可以自由使用而无需转义。
  • 单引号内的字符串按原样使用,而双引号内的字符串解释表示变量。
  • PHP docs on Strings
  • 中的更多信息

答案 1 :(得分:1)

这个怎么样:

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

甚至:

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