2012-09-19 48 views
0

我需要从目录中选择一个随机图像。我见过一些使用glob()的方法;但我希望能使用scandir();功能。从php目录中加载随机图像

function random_img(){ 
$imageDir = wptouch_get_bloginfo('template_directory').'/images/default-tiles/'; 
$images = scandir($imageDir); 
$randomImage = $images[array_rand($images)]; 

return $randomImage; 
} 

功能上面应该拉一个图像,而是我得到这个错误:

SCANDIR( “/ MYFILE /目录/”)未能打开目录:在“/文件MyFile没有执行/目录/”

+0

'/ images/default-tiles /'真的是你的**本地**图像目录吗?通常,如果您试图通过不同的fopen包装(例如HTTP)列出目录的内容,您会收到类似这样的错误。 – Brad

+0

我编辑了我的问题,因此它包含真正的动态路径。 – HjalmarCarlson

+1

echo'wptouch_get_bloginfo('template_directory')'时输出什么? – Brad

回答

0

试试这个,我想你正在使用的路径不正确:

$imageDir = $_SERVER['DOCUMENT_ROOT'] . 
      get_template_directory_uri() . 
      '/images/default-tiles/'; 
+0

这使我更接近,但最终唯一的解决方案已经工作是这样的:\t $ imageDir = ABSPATH.'wp-content/wptouch-data/themes/CMN-Touch-Base/iphone/images/default-tiles /' ; – HjalmarCarlson

0

的问题是,在目录中,您是U sing实际上不是您本地系统上的目录,而是一个URL。您无法在URL中列出文件。如何知道应该包含什么?没有一些普遍实施的魔术,通过HTTP的资源甚至不必与文件对应。

您需要做的是找出这些文件在本地系统上的位置,并改为使用该路径。