8

私はPHPが初めてで、スクリプトを作成しようとしています。スクリプトをロードすると、次のエラーが表示されます。

警告: opendir(http://www.hetweerinboskamp.nl/voorpagina/movies) [function.opendir]: dir を開けませんでした: 実装されていません

<?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 コードから見たファイルシステムのルートです。

別の Web サイトからコンテンツをダウンロードしようとしている場合は、たとえばfile_get_contents(). リモート サーバーがディレクトリの内容を一覧表示する場合、その一覧は実際にはサーバーによってオンザフライで生成される HTML ページであることに注意してください。そのページを解析する必要があることに気付くかもしれません。より良い方法は、サーバーがコンテンツを標準化された形式 (JSON 形式など) で送り返す何らかの API を提供しているかどうかを確認することです。

于 2012-08-18T11:08:49.760 に答える
6

opendirHTTP URI ではなく、ファイルシステム上のディレクトリで動作します。

一部の HTTP URI はディレクトリ リストを返しますが (使用しているものはそうではなく、404 エラーです)、これらのリストは Web サーバーによって生成された HTML ドキュメントであり、実際のディレクトリではありません。

于 2012-08-18T11:05:47.980 に答える
1

手動では、この機能は 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 に答える