我使用以下代码将用户上传到投资组合中。它工作得很好但是一个图像(在众多列表中)显示为空白 - 但在下一页上显示,使用相同的路径,但在传统的<img />
标记内。
<?php
$files= glob('./uploads/users/'. $item->user_id .'/'.$item->id.'/public_large/*');
$count = 0;
$user_avatar = '/themes/users/assets/img/noartwork.jpg';
foreach ($files as $file) {
$count++;
if ($count > 0 && is_file($file)) {
$user_avatar = $file;
}
}
?>
<div class="user-img" style="background-image:url('<?php echo site_url($user_avatar); ?>');"></div>
当我检查图像上没有显示的元素时,如果我将单引号background-image:url('<?php echo site_url($user_avatar); ?>');
更改为加倍background-image:url("<?php echo site_url($user_avatar); ?>");
,则它会通过,但如果我这样做则不是这种情况更改实际代码。
任何帮助都会很棒。
由于
答案 0 :(得分:1)
你试过删除单引号吗?像这样:
background-image:url(<?php echo site_url($user_avatar); ?>);
答案 1 :(得分:1)
我找到了解决方法。它与包含特殊字符的用户文件名有关,我没有检查例如my-user's-image.jpg
会破坏代码,因为角色需要转义my-user\'s-image.jpg
。
我修改了foreach
以运行检查,如下所示,现在正在运行。
foreach ($files as $file) {
$count++;
if ($count > 0 && is_file($file)) {
$user_avatar = str_replace("'", "\'", $file);
}
}
由于