0

次のようなディレクトリ構造があります。

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

imgex2.pngimgre.pngは大きな画像で、s_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()、www.mysite.com ではなく「file:///D:/Hosting/2543486/html/site/images」が返されることです。

やっていた

<?
$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 に答える