8

我是 PHP 新手,我正在尝试构建一个脚本。当我加载脚本时,我收到以下错误:

警告:opendir(http://www.hetweerinboskamp.nl/voorpagina/movies)[function.opendir]:无法打开目录:未实现

<?php
    $hal ='';
    $dir ='http://www.hetweerinboskamp.nl/voorpagina/movies';
    if ($handle = opendir($dir)) {
        // Loop the folders
        while (false !== ($file = readdir($handle))) {
            if(strlen($file) > 4) {
                $rawd = parsename($file);
                $hal.= 'new Date('.substr($rawd,0,4).', '.substr($rawd,4,2).'-1, '.substr($rawd,6,2).'),';
                 //$hal.= $rawd.',';
             }

            closedir($handle);
         }
4

4 回答 4

9

opendir()用于打开本地目录,并且从 PHP 5.0.0 开始在 ftp 目录上。

如果您的 PHP 代码在 www.hetweerinboskamp.nl 上运行,那么/voorpagina/movies它实际上是一个本地目录,您可以这样做:

$dir ='<wwwroot>/voorpagina/movies';
if ($handle = opendir($dir)) {

wwwroot如您的 php 代码所示,文件系统的根在哪里。

如果您尝试从其他网站下载内容,请尝试例如file_get_contents(). 请注意,如果远程服务器列出目录的内容,则该列表实际上是服务器动态生成的 HTML 页面。您可能会发现自己需要解析该页面。更好的方法是检查服务器是否提供某种 API,在该 API 中它以标准化形式(例如 JSON 格式)发回内容。

于 2012-08-18T11:08:49.760 回答
6

opendir操作文件系统上的目录,而不是 HTTP URI。

虽然一些 HTTP URIs 返回目录列表(您使用的那个没有,这是一个 404 错误),但这些列表是由网络服务器生成的 HTML 文档,并不是实际的目录。

于 2012-08-18T11:05:47.980 回答
1

Manual 声称此功能适用于 URL,但是,它似乎没有。

使用本地路径(相对或绝对)。例如,'./voorpagina/movies'。这已经解决了我之前的类似问题。我希望这有帮助。

于 2018-04-03T20:07:53.267 回答
0

大多数远程服务器不会发回目录列表,因为这样的 opendir 无法理解您尝试做什么,因此它无法工作。

您将需要使用 ftp 之类的东西,这是一个示例: http: //php.net/manual/en/ftp.examples-basic.php或 cURL

于 2012-08-18T11:06:32.473 回答