我一直试图将图像显示到heredoc它无法正常工作,我没有错误 但如果我把它们展示出来,那么他们就能很好地展示出来。可能是什么问题? 如有任何帮助,我将不胜感激。 这是代码,我在heredoc和out中显示了两次图像,以便您获得清晰的视图。
<?Php
$target = "image_uploads/";
$image_name = (isset($_POST['image_name']));
$query ="select * from
tish_user inner join tish_images
on tish_user.user_id = tish_images.user_id
WHERE tish_images.prof_image = 1";
$result= $con->prepare($query);
$result->execute();
$table = <<<ENDHTML
<div style ="text-align:center;">
<h2>Client Review Software</h2>
<table id ="heredoc" border ="0" cellpaddinig="2" cellspacing="2" style = "width:100%" ;
margin-left:auto; margin-right: auto;>
<tr>
<th>Name</th>
<th>Last Name</th>
<th>Ref No</th>
<th>Cell</th>
<th>Picture</th>
</tr>
ENDHTML;
while($row = $result->fetch(PDO::FETCH_ASSOC)){
$date_created = $row['date_created'];
$user_id = $row['user_id'];
$username = $row['username'];
$image_id = $row['image_id'];
#this is the Tannery operator to replace a pic when an id do not have one
$photo = ($row['image_name']== null)? "me.png":$row['image_name'];
#display image
# I removed this line up to here
echo '<img src="'.$target.$photo.'" width="100" height="100">';
$table .= <<<ENDINFO
<tr>
<td><a href ="client_details.php?user_id=$user_id">$username </a></td>
<td>$image_id</td>
<td></td>
<td>c</td>
<td><img src="'.$target.$photo.'" width="100" height="100">
</td>
</tr>
ENDINFO;
}
$table .= <<<ENDHTML
</table>
<p>$numrows"Clients</p>
</div>
ENDHTML;
echo $table;
?>
答案 0 :(得分:2)
使用heredoc
并在未显示图片的浏览器中查看其来源
图像src就像这个<img src="'.../images/.me.png.'" ...
这是错误的,因为你可以看到单引号和额外的。 (期间标志)在img src的双引号内
试试这段代码
$table .= <<<ENDINFO
<tr>
<td><a href ="client_details.php?user_id=$user_id">$username </a></td>
<td>$image_id</td>
<td></td>
<td>c</td>
<td><img src="{$target}{$photo}" width="100" height="100">
</td>
</tr>
ENDINFO;
}
所以
<img src="'.$target.$photo.'" width="100" height="100">
将是
<img src="{$target}{$photo}" width="100" height="100">
如果有解决方法,请告诉我,请务必检查浏览器的view source
选项中的HTML来源以查看打印的内容
答案 1 :(得分:1)
<td><img src="'.$target.$photo.'" width="100" height="100">
你的heredoc中的这一行对我来说没有意义。您应该直接使用字符串中的变量,而不使用单引号和concatentation-dots。
像这样:
<td><img src="$target$photo" width="100" height="100">
但是因为你想要一个接一个地打印两个变量,你可能需要使用卷曲语法:
<td><img src="{$target}{$photo}" width="100" height="100">
您可以阅读有关卷曲语法的更多信息
here。您基本上将变量包装在大括号({
和}
)中,以帮助PHP了解变量名称的开始和结束位置。
答案 2 :(得分:0)
这样做并在任何你想要的地方显示声明的变量。 还删除了里面的heredoc里面放了$ pic。
$pic = '<img src="'.$target.$photo.'" width="50" height="50">';
echo $pic ;