Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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
在Joomla 1.5的PHP页面组件中使用opendir_Php_Joomla_Joomla1.5_Opendir_Joomla Component - Fatal编程技术网

在Joomla 1.5的PHP页面组件中使用opendir

在Joomla 1.5的PHP页面组件中使用opendir,php,joomla,joomla1.5,opendir,joomla-component,Php,Joomla,Joomla1.5,Opendir,Joomla Component,我有一个在Joomla上运行的网站!1.5(由于模板问题,无法升级)。 在这个网站上,我有一个页面,会员可以在其中找到一些重要的文件,这些文件是我们俱乐部会员所需要的 我在一些文件夹中排列了这些文件,所有这些文件都使用相同的命名约定(*yyyy-mm-dd_documentName*) 为了使事情更简单,我想使用一些格式自动列出文件 由于Joomla不允许在文章中输入PHP,我安装了。 此组件允许您创建页面并通过菜单栏等链接到页面 同样列出这些文件,我想使用PHP的opendir函数,打开文件夹

我有一个在Joomla上运行的网站!1.5(由于模板问题,无法升级)。
在这个网站上,我有一个页面,会员可以在其中找到一些重要的文件,这些文件是我们俱乐部会员所需要的

我在一些文件夹中排列了这些文件,所有这些文件都使用相同的命名约定(*yyyy-mm-dd_documentName*)

为了使事情更简单,我想使用一些格式自动列出文件

由于Joomla不允许在文章中输入PHP,我安装了。
此组件允许您创建页面并通过菜单栏等链接到页面

同样列出这些文件,我想使用PHP的opendir函数,打开文件夹并运行文件夹来读取文件名并格式化它们。
这是我使用的代码:

if($handle = opendir('/media/files/')) {
  while(false !== ($entry = readdir($handle))) {
    echo $entry;
  }

  closedir($handle);
}
由于组件从它自己的目录开始每个相对路径,忽略了第一个/由于某种原因,因此出现了一个错误。
因此,我试图通过输入完整的URL(从http://)来解决这个问题

仍然没有修复,新错误现在是(bestanden.php是php页面)

警告: opendir() [function.opendir]:无法打开目录:未在中实现 /home/user/public_html/components/com_php/files/bestanden.phpon 行38

有人建议我使用ftp handlet(也受支持)。
这显然是语法
我对此做了一个单独的说明,结果立即出现在右目录,防止交叉目录攻击。如果我在浏览器中手动尝试此操作,则此操作确实有效(但它仍要求提供凭据)。
但这也不起作用

我的点子快用完了。
有人能帮我吗

解决方案

感谢@Lodder

<ul>
<?php

  $path = JPATH_SITE . '/media/files/nieuwsbrieven/'; 
  $files = JFolder::files($path);  
  foreach ($files as $file) {
    // Strip extension and save name to display it
    $name = substr($file, 0, strrpos($file, '.'));
    // Exclude the index I placed inside the dir to prevent direct surfing to the folder
    if($name != "index") {
      echo "<li><a href='/media/files/nieuwsbrieven/" . $file . "' title='Nieuwsbrief " . $name . "' target='_blank'>Nieuwsbrief " . $name . "</a></li>";
    }
  }

?>
</ul>
结果

  • Nieuwsbrief 2013-04-03
  • Nieuwsbrief 2013-04-19
  • Nieuwsbrief 2013-05-16
  • Nieuwsbrief 2013-06-19
  • Nieuwsbrief 2013-07-17
  • Nieuwsbrief 2013-08-28

在试用时,您应该仔细阅读Joomla文档。Joomla有自己的类来读取文件夹中的文件。您可以使用以下命令显示文件夹中的所有文件:

$path = JPATH_SITE . '/media/files';
$files = JFolder::files($path);

foreach ($files as $file) {
    echo $file;
}
要使用这段代码,请忘记允许您使用自定义PHP等组件,我强烈推荐一个名为的插件,它允许在文章中使用PHP或JS

有关Joomla文件系统类的更多信息,请阅读以下内容:


希望这有帮助

JPATH\u网站是一个全球性的变量,我想是吧?它指向我的根文件夹还是某个特定文件夹?
JPATH\u站点
指向Joomla站点的根。测试代码并查看;)这是我的第一个猜测。但我现在无法测试它,将能够在几个小时内开始这方面的工作。谢谢你的帮助!有一个J!1.5版本的扩展?或者类似的扩展?无论如何,我需要能够使用PHP来实现这一点。非常欢迎您,很高兴一切正常。请你也注意遵守规定。这将是非常感谢,因为我们真的希望得到批准的StackExchange。