Php glob()查找图像,但返回';失踪

Php glob()查找图像,但返回';失踪,php,glob,Php,Glob,Im使用glob()查找与规则匹配的任何图像文件 我正在使用以下代码: $photo = glob(($_SERVER['DOCUMENT_ROOT'] .'/stocklist/photo/'.$row['Scientific'].'*.jpg')); print_r(glob(($_SERVER['DOCUMENT_ROOT'] .'/stocklist/photo/'.$row['Scientific'].'*.jpg'))); 这将产生以下结果: Array ( [0] =&

Im使用glob()查找与规则匹配的任何图像文件

我正在使用以下代码:

$photo = glob(($_SERVER['DOCUMENT_ROOT'] .'/stocklist/photo/'.$row['Scientific'].'*.jpg'));

print_r(glob(($_SERVER['DOCUMENT_ROOT'] .'/stocklist/photo/'.$row['Scientific'].'*.jpg')));
这将产生以下结果:

    Array ( [0] => /var/www/web/stocklist/photo/Pituophis deppei jani.jpg 
[1] => /var/www/web/stocklist/photo/Pituophis deppei jani1.jpg )
然后,当我使用下面的代码将图像回显到页面时,它会显示2个断开的图像图标

$length = count($photo);


        if($length) {
        echo"<ul id='slide'>";
        for ($i = 0; $i < $length; $i++) {
        echo "<li><img src='".$photo[$i]."' alt='".$row['Name']."'></li>";}

        echo "</ul><ul id='slide-pager'>";

        for($i2 = 1; $i2 < $length+1; $i2++) {
        echo "<li><a href='#".$i2."'>".$i2."</a></li>";

        }
        echo "</ul>";
        }
        else {
        echo "<img src='/stocklist/photo/placeholder.jpg' class='img-right'><br clear='right'>";
        }
$length=计数($photo);
如果($长度){
回声“”;
对于($i=0;$i<$length;$i++){
回声“
  • ”;} 回声“
      ”; 对于($i2=1;$i2<$length+1;$i2++){ 回声“
    • ”; } 回声“
    ”; } 否则{ 回声“
    ”; }
    尝试更改为:

    $photo = (glob('stocklist/photo/'.$row['Scientific'].'*.jpg'));
    print_r(glob('stocklist/photo/'.$row['Scientific'].'*.jpg'));
    

    这样,您返回的路径将已经相对于您的公用文件夹。你也可以像@sergiu建议的那样做stru_替换,但为什么不干脆把它完全去掉呢

    您需要从图像路径中删除
    /var/www/web
    。这是一个服务器绝对路径,不是一个可通过web访问的路径。使用
    str\u replace
    。似乎您需要先了解HTTP和web服务器,然后PHP.str replace就可以完美地工作了。谢谢@Sergiu Parashiv:)