我正在创建一个joomla模块,它拉入一篇文章,然后从文件夹中分配一个图像(没有特定的顺序)。PHP获取文件夹中的图像返回相同的图像
但它一直返回相同的图像:/ ...其他一切正常完美我只需要它从每个文章的文件夹中抓取不同的图像。
这里的mod_slider.php(包括仅要领):
$a = explode(",", $params->get('id'));
foreach ($a as $k => $val) {
$args = $val;
$item[] = ModArticleSlider::getArticles($args,$params);
}
和helper.php(包括整个类):
class ModArticleSlider {
public static function getArticles($args,$params){
$db = JFactory::getDBO();
$id = $args;
if($id > 0){
$query = "select * ";
$query .= "FROM #__content WHERE id =".$id." AND state=1 " ;
//echo $query;
$db->setQuery($query);
$item = $db->loadObject();
}
$folder = $params->get('folder');
if(JString::strpos($folder, JURI::base()) === 0)
{
$folder = str_replace(JURI::base(), '', $folder);
}
if(JString::strpos($folder, JPATH_SITE) === 0)
{
$folder = str_replace(JPATH_BASE, '', $folder);
}
$folder = str_replace('\\', '/', $folder);
$dir = JPATH_BASE.'/'.$folder;
$files = array();
if(is_dir($dir))
{
if($handle = opendir($dir))
{
while(($file = readdir($handle)) !== false)
{
if($file != '.' AND $file != '..' AND $file != 'index.html')
{
$files[] = $file;
}
}
}
closedir($handle);
$types = array_map('trim', explode(',', $params->get('type')));
$images = array();
foreach($files as $img){
if(!is_dir($dir.'/'.$img))
{
foreach($types as $type)
{
$muster = '@'.$type.'[email protected]';
if(preg_match($muster, $img))
{
$item->name = $img;
$item->folder = str_replace('\\', '/', $folder);
}
}
}
}
}
return $item;
}
}
,然后在index.php(仅包括要领):
<?php foreach ($item as $items):?>
<img src="<?php echo $items->folder.'/'.$items->name ?>" />
<?php endforeach; ?>
任何帮助非常感谢。
您将数字分配给变量'$ a'的方式是错误的。 您应该为该变量分配一个数组,例如'$ a = array(1,2,3,4);'。 试试看看它是否有效。 – Shef 2013-04-10 20:37:40
完成任何调试?检查了参数是什么?检查了您为路径生成的内容?检查你在那些生成的路径中发现了什么? – 2013-04-10 20:38:21
我真的还是个初学者..我一直在努力做我能做的。 。 。 – 2013-04-10 20:40:00