0

我有一个像这样的目录结构:

IMAGES/
       imgex2.png
       s_imgex2.png
       imgre.png
       s_imgre.png

大图在哪里imgex2.png,在哪里,是缩略图imgre.pngs_imgex2.pngs_imgre.png

我想用 php 中的绝对路径填充画廊,比如

<li><a href="www.site.com/images/imgex2.png">
    <img src="images/s_imgex2.png" alt="ex2" />
</a></li>
<li><a href="www.site.com/images/imgre.png">
    <img src="images/s_re.png" alt="re" />
</a></li>

如何先用大图像填充给定的路径,然后是缩略图(它在文件名的开头有一个“s_”)并在不带“img”字符串的情况下放入 alt="" 名称?这里的问题并不总是文件名有“img”所以修剪不是一个选项

其他问题是getcwd()返回 'file:///D:/Hosting/2543486/html/site/images' 而不是 www.mysite.com

我在做

<?
$dir = './';
$files = glob( $dir . '*.png');
foreach( $files as $file) {
    $path  = getcwd().$file;
    $path  = substr_replace($path, 'file:///D:/Hosting/2543486/html/', 0); 

    $site       = "http://www.site.com/".$path.$file;
    $thumb_site = "http://www.site.com/".'s_'.$path.$file;
    $alt        = substr_replace($file, 'img', 0); 

    echo '<li><a href="'.$thumb_site.'">';
    echo '    <img src="'.$thumb_path.'" alt="'.$alt.'" />';
    echo '</a></li>';


}
?>

但得到:

http://www.site.com/file:///D:/Hosting/2543486/html/site/imgex2.png
http://www.site.com/s_file:///D:/Hosting/2543486/html/site/imgex2.png

如何解决?

4

1 回答 1

1

我会这样做:

$dir = './';
$files = glob( $dir . 's_*.png');
foreach( $files as $file) {

    $site       = "/images/".str_replace("s_","",$file);
    $thumb_site = "/images/".$file;
    $alt        = str_replace(".png","",str_replace("s_img","",$file)); 

    echo '<li><a href="'.htmlentities($site,ENT_COMPAT,"UTF-8").'">';
    echo '    <img src="'.htmlentities($thumb_site,ENT_COMPAT,"UTF-8").'" alt="'.htmlentities($alt,ENT_COMPAT,"UTF-8").'" />';
    echo '</a></li>';


}

编辑

如果你真的很想使用绝对路径,只需稍微改变一下:

$root="http://www.example.com";
$dir = './';
$files = glob( $dir . 's_*.png');
foreach( $files as $file) {

    $site       = $root."/images/".str_replace("s_","",$file);
    $thumb_site = $root."/images/".$file;
    $alt        = str_replace(".png","",str_replace("s_img","",$file)); 

    echo '<li><a href="'.htmlentities($site,ENT_COMPAT,"UTF-8").'">';
    echo '    <img src="'.htmlentities($thumb_site,ENT_COMPAT,"UTF-8").'" alt="'.htmlentities($alt,ENT_COMPAT,"UTF-8").'" />';
    echo '</a></li>';


}
于 2013-05-21T03:24:26.093 回答