0

これが私の現在のコードです(PHPでの最初の試みを非常に誇りに思っています)

<?php
$files = glob("/jobops/*.txt");
$indexcount = count($files);
sort($files);
print("<br>"+$indexcount+"<br>");
foreach ($files as &$file)
{
    print("<a href=\"$file\">$file</a><br>");
}
?>

問題は、glob がルート ディレクトリ (このスクリプトが配置されている場所) で再び正常に動作することですが、特定のフォルダーを指すと、0 個のファイルが見つかりました。

ディレクトリ構造を示す ftp クライアントからのスクリーン グラブを含めました (以下)。

だから私はグロブで何が間違っているのか混乱しています

www.markonsolutions.com/test.phpはスクリプトがある場所で、クリックすると 0 個のファイルが見つかりました

代替テキスト

4

4 に答える 4

6
"/jobops/*.txt"

*使用する必要があるphpスクリプトと同じディレクトリにあるディレクトリを指す場合は、nixの絶対パスです。

"jobops/*.txt"

これは相対パスです。

于 2009-09-02T15:19:33.763 に答える
3

言われるように

「/jobops/*.txt」

" / " (スラッシュ)で始まるため、絶対パスです。

相対パスはスラッシュで始まらないパスなので、

「jobops/*.txt」

「./jobops/*.txt」

「../jobops/*.txt」

すべては相対的です...要点は:何に対して相対的か?

OS では、環境変数 PATH で列挙されたディレクトリに相対的です (多くの場合、現在の作業ディレクトリがこの変数にリストされている最初のディレクトリであり、"jobops/*.txt" が jabops ディレクトリを参照しているという誤った推測につながります)。現在のディレクトリ!)

環境である PHP では、常に絶対パスを使用することをお勧めします。これは、もちろんそれらをハードコーディングすることを意味しません。

次のことをお勧めします。

dirname(__FILE__).'/jobops/*.txt'

これは、PHPでパスを正しく使用する方法です

于 2009-09-02T15:39:03.460 に答える
2

たぶん次のようなもの:

$files = glob($_SERVER['DOCUMENT_ROOT']."/jobops/*.txt");
于 2009-09-02T15:19:51.800 に答える
1

これをWebサーバーから実行している場合は?Web サーバーのユーザーとグループの設定で、他のディレクトリへのアクセスが許可されていない可能性がありますか? これは権限の問題ですか? Web サーバーの error_log と access_logs で手がかりを確認してください。

于 2009-09-02T15:27:03.577 に答える