Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.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 动态拉取图像并创建链接_Php_Image_Hyperlink - Fatal编程技术网

Php 动态拉取图像并创建链接

Php 动态拉取图像并创建链接,php,image,hyperlink,Php,Image,Hyperlink,是否有一种方法可以从目录中提取图像并将其放置在网页上,并将链接附加到这些图像上,从而使用PHP将一个人带到与该图像关联的特定网页 谢谢 这应该是可行的,尽管foreach()在计算上可能很昂贵。我相信一定有更好/更经济的方法来删除和的相对文件路径。在第一个foreach()中,类似这样的方法应该可以做到: if ($handle = opendir('/path/to/files')) {     echo "Directory handle: $handle\n";     echo

是否有一种方法可以从目录中提取图像并将其放置在网页上,并将链接附加到这些图像上,从而使用PHP将一个人带到与该图像关联的特定网页

谢谢



这应该是可行的,尽管
foreach()
在计算上可能很昂贵。我相信一定有更好/更经济的方法来删除
的相对文件路径。
在第一个
foreach()

中,类似这样的方法应该可以做到:

    if ($handle = opendir('/path/to/files')) {
    echo "Directory handle: $handle\n";
    echo "Files:\n";

    /* This is the correct way to loop over the directory. */
    while (false !== ($file = readdir($handle))) {
    if(substr($file, -3) == 'jpg'){ //modify to handle filetypes you want
        echo "<a href='/path/to/files/".$file."'>".$file."</a>";
    }
    }

    closedir($handle);
}
if($handle=opendir('/path/to/files')){
echo“目录句柄:$handle\n”;
回显“文件:\n”;
/*这是在目录上循环的正确方法*/
while(false!=($file=readdir($handle))){
如果(substr($file,-3)='jpg'){//修改以处理所需的文件类型
回声“;
}
    }
closedir($handle);
}

您是在询问如何扫描目录还是如何将图像列表与URL关联

第一个问题的答案是glob()函数

第二个答案是使用assoc数组

$list = array('foo.gif' => 'bar.php', 'blah.gif' => 'quux.php');
和一个foreach循环来输出图像和链接

foreach($list as $src => $href) echo "<a href='$href'><img src='$src'></a>";
foreach($src=>$href)echo“”;
@ricebowl:

使用PHPVersion5.2.9/Apache2.0/WindowsVista-我得到了解析错误

无论如何,有一个有效的解决方案:

$dir = "./imageDirectory";
$ext = array('.jpg','.png','.gif');

$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {

 print '<ul>';

 if(strpos($filename, '.') > 3)
 {
    print '<li><a href="'.$dir.'/'.$filename.'">'.str_replace($ext, '', $filename).'</a></li>';

 }

 print '</ul>';

}
$dir=“./imageDirectory”;
$ext=数组('.jpg'、'.png'、'.gif');
$dh=opendir($dir);
while(false!=($filename=readdir($dh))){
打印“
    ”; 如果(strpos($filename,“.”)大于3) { 打印“
  • ”; } 打印“
”; }
也会帮助您。上面的大部分代码都来自那个页面……啊,是的。我不确定是我做了什么导致了这种情况。嗯,很抱歉(编辑我的帖子以更正语法/代码)更改$directory=“imageDirectory”;至$directory=“./imageDirectory”;就这样:)
$dir = "./imageDirectory";
$ext = array('.jpg','.png','.gif');

$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {

 print '<ul>';

 if(strpos($filename, '.') > 3)
 {
    print '<li><a href="'.$dir.'/'.$filename.'">'.str_replace($ext, '', $filename).'</a></li>';

 }

 print '</ul>';

}