我正在尝试生成一些HTML代码,以便为幻灯片放映列出一些图像。
我得出了以下想法:
function galGetTopPhotos()
{
//path to directory to scan
$directory = SITE_ROOT_PATH."/gallery/best/";
//get all files
$images = glob($directory . "*.*");
//print each file name
$ret = "";
$ret .= '<div id="myslides">';
foreach($images as $image)
{
$ret .= '<img src="'.$image.'" />';
}
$ret .= '</div>';
return $ret;
}
问题是它只在我使用$directory
的根路径时才有效...如果我使用URL它将无效。它会导致图像无法加载。以下是此代码生成的内容:
<div id="myslides">
<img src="D:/xampp/htdocs/mrasti/gallery/best/1.jpg" />
<img src="D:/xampp/htdocs/mrasti/gallery/best/10.jpg" />
</div>
所以问题是,如何获取文件列表以便以http://127.0.0.1/....
格式生成img源?
我的意思是,如果我使用这样的代码,它就不会返回任何文件!
$directory ="http://127.0.0.1/mrasti/gallery/best/";
答案 0 :(得分:4)
这看起来像PHP函数basename
的工作。这将获取文件路径并仅返回路径的最后一个元素 - 在本例中是jpeg图像的实际名称。
您可以修改代码,使其看起来像这样:
$urlPath = "http://127.0.0.1/mrasti/gallery/best/";
...
...
foreach($images as $image)
{
$relative_path = $urlPath.basename($image);
$ret .= '<img src="'.$relative_path.'" />';
}
上面采用路径并将文件名“example.jpg”附加到您的图像目录url
答案 1 :(得分:2)
glob仅适用于本地文件,不适用于远程文件。看看这里:
http://php.net/manual/en/function.glob.php
对于远程文件,请查看此处:
http://www.php.net/manual/en/features.remote-files.php
但我不认为你需要远程文件。您似乎想要浏览本地目录并显示此图像。
尝试这样的事情
...
$ret .= '<img src="http://127.0.0.1/my/path/'.basename($image).'" />';
...
答案 2 :(得分:1)
您需要具备将磁盘上的文件路径转换为正确URI的功能,以便您的浏览器能够理解它。
在您概述的具体案例中,以及您问题中给出的确切数据,以下内容可能有效:
foreach($images as $image)
{
$src = '/mrasti/gallery/best/'.substr($image, strlen($directory));
$ret .= '<img src="'.$src.'" />';
}