使用php(xampp)以随机顺序从目录中获取文件
Posted
技术标签:
【中文标题】使用php(xampp)以随机顺序从目录中获取文件【英文标题】:Get files from a directory in random order using php (xampp) 【发布时间】:2013-04-26 09:07:42 【问题描述】:我正在构建一个 wordpress 主题,我正在尝试使用 php 以随机顺序从目录中获取所有 jpg 文件...。 我在 win7 (localhost) 上使用 Xampp。
这是代码:
<?
$dir = get_template_directory_uri().'/images/top/';
$file_display = array ('jpg', 'jpeg');
if(file_exists($dir) == false)
echo 'Directory \'', $dir, '\' not found';
else
$dir_contents = scandir($dir);
shuffle($dir_contents);
foreach ($dir_contents as $file)
$file_type = strtolower(end(explode('.', $file)));
if ($file !== '.' && $file !== '..' && in_array($file_type, $file_display) == true)
echo '<img src="', $dir, '/', $file, '" />';
?>
我总是得到
Directory 'http://localhost/ni/wp-content/themes/A/images/top/' not found
我也尝试过改变
$dir = get_template_directory_uri().'/images/top/';
到:
$dir = "C:\xampp\htdocs\Ni\wp-content\themes\A\images\top\";
但仍然没有运气,任何帮助将不胜感激!
【问题讨论】:
(file_exists($dir) == false)
测试前面有没有和if
?
是的,我编辑了这个问题,谢谢!我在我的原始代码上有它!
尝试将get_template_directory_uri
替换为get_template_directory
,因为get_template_directory_uri
提供了一个URI(而您不希望这样)
@EaterOfCorpses 自 PHP 5.0 起 file_exists
接受 HTTP(在其他一些协议中),因此只要 OP 使用 PHP5 就没有关系。
使用 get_template_directory() 输出:C:\xampp\htdocs\Ni/wp-content/themes/A/images/top/ 带有混合斜杠(linux windows syle?),我得到目录''没找到
【参考方案1】:
这就是我让它工作的方式。
<?
$dir = get_template_directory().'/images/top';
$imageDir= get_template_directory_uri().'/images/top';
$file_display = array ('jpg', 'jpeg');
if (file_exists($dir) == false)
echo 'Directory \'', $dir, '\' not found';
else
$dir_contents = scandir($dir);
shuffle($dir_contents);
foreach ($dir_contents as $file)
$file_type = strtolower(end(explode('.', $file)));
if ($file !== '.' && $file !== '..' && in_array($file_type, $file_display) == true)
echo '<img src="', $imageDir, '/', $file, '" />';
?>
【讨论】:
通过使用 get_template_directory() 来获取数组。和 get_template_directory_uri() 显示图像。谢谢大家帮助我解决这个问题...... 请注意,在大多数情况下,如果您尝试加载资源,最好使用get_stylesheet_directory()
而不是get_template_directory()
,因为如果您使用的是子主题,前者将返回子主题的目录,而后者将返回父主题的目录,因此会导致您错过子主题资产。以上是关于使用php(xampp)以随机顺序从目录中获取文件的主要内容,如果未能解决你的问题,请参考以下文章
PHP 在 Windows 上的 Xampp 中正确获取“应用程序根目录”
如何使用 php 和 javascript 从目录中获取文件名