2

file_ put_ contents を使用して、cron スクリプトがあるディレクトリのサブフォルダーにファイルを書き込もうとしています。ただし、「ストリームを開くことができませんでした: そのようなファイルまたはディレクトリはありません」という警告が引き続き表示されます。私はこのディレクトリ構造を持っています:

httpdocs/scripts/fileDirectory

cron スクリプトは、scripts フォルダーにあります。cron コマンドで呼び出します。

php httpdocs/scripts/cron_writeFile.php

cron_writeFile ファイルで、最初に試したのは次のとおりです。

file_put_contents('fileDirectory/', $fileName, $fileContents);

これは、ブラウザにページをロードすると機能しますが、cron を実行すると機能しません。

cron でファイルを require_once するときは、「絶対」パスを指定する必要があります。

require_once('httpdocs/scripts/requiredFile.php');

だから、私はそれを試しました:

file_put_contents('httpdocs/scripts/fileDirectory/', $fileName, $fileContents);

運がない。警告は次のとおりであるため、正しいフォルダーに到達していると確信しています。

"警告: file_ put_ contents(httpdocs/scripts/fileDirectory/4.txt): ストリームを開くことができませんでした: No such file or directory in /var/www/vhosts/myDomain.com/httpdocs/scripts/cron_writeFile.php on line 93 "

両方のディレクトリに書き込み権限があります。


PHP 5.0.4 を搭載した Parallels Plesk Panel バージョン 9.2.1 を 実行している VPS を使用しています (これがうまくいかず、アップグレードする必要があることはわかっていますが、権限がありません)。

ファイルが存在せず、スクリプトを実行するたびに新しいファイルが必要です。
ファイルパスを定義する特定の方法があるかどうか、または他に欠けているものがあるかどうかはわかりません。

ご協力いただきありがとうございます!

4

1 に答える 1

11

「fileDirectory」ディレクトリへの絶対パスを取得するためにdirname(__FILE__)(を参照) を使用するとどうなりますか?

あなたのスクリプトfileDirectoryがあなたのファイルが存在するディレクトリの子である場合、私は推測します:

file_put_contents(dirname(__FILE__) . '/fileDirectory/' . $fileName, $fileContents);

そうすれば、スクリプトが「正しい」ディレクトリから起動されていない場合、相対パスに依存しなくなります。

于 2009-07-16T21:41:47.133 に答える