Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php img标签显示文件夹中的img,但背景图像不显示?_Php_Html_Css - Fatal编程技术网

Php img标签显示文件夹中的img,但背景图像不显示?

Php img标签显示文件夹中的img,但背景图像不显示?,php,html,css,Php,Html,Css,我使用下面的代码将用户上传到公文包中。它工作得很好,但是有一个图像(在许多图像列表中)显示为空白,但在下一页显示,使用相同的路径,但在传统的标记中 <?php $files= glob('./uploads/users/'. $item->user_id .'/'.$item->id.'/public_large/*'); $count = 0; $user_avatar = '/themes/users/assets/img/noartwork.jpg

我使用下面的代码将用户上传到公文包中。它工作得很好,但是有一个图像(在许多图像列表中)显示为空白,但在下一页显示,使用相同的路径,但在传统的
标记中

<?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>

');到双
背景图像:url(“”)它可以通过,但如果我在实际代码中做了此更改,情况就不是这样了

任何帮助都会很好


谢谢你试过删除单引号吗?像这样:

 background-image:url(<?php echo site_url($user_avatar); ?>);
背景图像:url();

我找到了解决方法。这与用户文件名有关,该文件名包含一个我没有检查的特殊字符,例如
my user's-image.jpg
在字符需要转义时中断代码
my user's-image.jpg

我修改了foreach的
foreach
来运行一个如下的检查,现在可以运行了

foreach ($files as $file) {
    $count++;
    if ($count > 0 && is_file($file)) { 
        $user_avatar = str_replace("'", "\'", $file);
    } 
}
谢谢