从另一个网站目录获取PHP中的随机图像
我有大量的图片,我想随机选择,但在免费托管下没有足够的空间来存储它们,所以我创建了第二个网站来保存这些图片 我试过glob命令,它可以处理同一网站中的图像,但似乎对其他网站没有任何作用。目录列表是允许的,通过键入url,我可以看到所有文件,但如果我运行代码,它不会返回任何内容。有人知道如何让它工作吗 代码在这里,回音部分是临时的从另一个网站目录获取PHP中的随机图像,php,Php,我有大量的图片,我想随机选择,但在免费托管下没有足够的空间来存储它们,所以我创建了第二个网站来保存这些图片 我试过glob命令,它可以处理同一网站中的图像,但似乎对其他网站没有任何作用。目录列表是允许的,通过键入url,我可以看到所有文件,但如果我运行代码,它不会返回任何内容。有人知道如何让它工作吗 代码在这里,回音部分是临时的 $images = glob('http://(mywebsite).com/images/*'); $randomImage = $images[rand(0, co
$images = glob('http://(mywebsite).com/images/*');
$randomImage = $images[rand(0, count($images) - 1)];
echo count($images);
不确定您是否真正了解http协议。。。您不能通过HTTP“dir”远程目录:您得到的总是一个HTML响应。因此,您可以从远程获取目录列表:
$page = file_get_contents('http://(mywebsite).com/images');
然后在$page中为文件解析HTML代码,例如
$matches = array();
$count = preg_match_all('/\<a href=\"([^\"]+)\"\>/',$page,$m);
foreach($matches[1] as $file) {
$img = file_get_contents('http://(mywebsite).com/images/'.$file);
}
$matches=array();
$count=preg\u match\u all('/\此代码属于远程(映像)服务器端。我建议您在那里编写一个排序为的rndimg.php
,并插入此代码,当然要引用相应的文件系统
然后,通过执行文件获取内容('http://imgserver/rndimg.php);
或者类似的东西,你每次都可以检索一张随机图像
例如rndimg.php
如下:
$images = glob('*.png');
$randomImage = $images[rand(0, count($images) - 1)];
header('Content-Description: File Transfer');
header('Content-Type: image/png');
header('Content-Disposition: attachment; filename='.basename($randomImage));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($randomImage));
readfile($randomImage);
exit;
另外,我知道我可以建立一个文件名列表并从中读取,但我不想每次上传任何新内容时都要更改它。你们不能像这样跨服务器读取文件系统-你们需要先向另一台服务器进行身份验证,但考虑到你们是“免费的”托管我怀疑这个选项是否对您开放。我想您可以在图像服务器上编写一个脚本,打印该目录中的图像列表供您阅读-这样您就不必手动维护列表。让PHP处理这个问题也没有什么意义-您最好编写一个javascript解决方案。您知道这个脚本的结构吗远程URL的结构?谢谢,伙计,以前不知道文件的内容,所以这真的很有帮助,现在一切都正常了:D