HTMLファイルをフォルダーに書き込むphpスクリプトがあります。これは、WordPress 以外でも完全に機能します。しかし、自分のコードをプラグインに取り込もうとすると、フォルダーに書き込まれなくなります。WordPressの外部にあるルートディレクトリでテストした元のフォルダーに書き込もうとしましたが、そこにも書き込めません。
これは、html ファイルに書き込む関数です。
function buildFrameFile($html, $filename){
$filename= '/wp-content/plugins/my-plugin/html/' . $filename . ".html";
$fh = fopen($filename, 'a');//open file and create if does not exist
fwrite($fh, $html);//write data
fclose($fh);//close file
return $filename;
}
私も試してみました
$fh = fopen($filename, 'a');
$fh = fopen($filename, 'a+');
$fh = fopen($filename, 'w');
$fh = fopen($filename, 'a+');
これらのいずれも機能しません。
WordPress 内では、書き込み先のフォルダーに移動する必要があるのは php.ini ファイルや .htaccess ファイルに含まれている可能性があると考えていますが、行き詰まっています。
* アップデート **
エラーログにいくつかのエラーが見つかりました。次のとおりです。
エラー: fwrite() は、パラメーター 1 がリソースであると想定しています。
$fh = fopen($filename, 'a');//open file and create if does not exist
fwrite($fh, $html);//write data
fclose($fh);//close file
2回目の更新
次のコードを追加すると、ファイルがフォルダーに書き込まれます
function buildFrameFile($html, $filename){
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$filename= $DOCUMENT_ROOT. '/wp-content/plugins/my-plugin/html/' . $filename . ".html";
$fh = fopen($filename, 'a');//open file and create if does not exist
fwrite($fh, $html);//write data
fclose($fh);//close file
return $filename;
}
しかし、ファイルを開くために呼び出すと、次のリンクからファイルを開こうとします
/var/chroot/home/content/##/########/html/wp-content/plugins/my-plugin/html/c413c4976260c1a786e7a48be03f3ad2.html
ブラウザに表示されないため、リンクによってファイルが見つかるとは思いません。