※ ChatGPTを利用し、要約された質問です(原文:PHPでFilename cannot be empty他の警告(Wa)
PHPでWarningが発生しています
このQ&Aのポイント
PHP初心者です。テンプレートを使ってファイルを作成する機能をつくりましたが、実行するとWarningが発生します。解消する方法をご存知でしたらご教授ください。
クラスファイルとメインのコードがあり、クラスファイルではテンプレートファイル名、保存ファイル名、置換キーワードセットを指定できます。メインのコードではインスタンスを生成し、テンプレート名と保存ファイル名を設定し、値を置換してファイルを生成します。
警告メッセージとして、ファイル名が空であるためにfopen()がWarningを表示し、fwrite()やfclose()も同様にWarningを表示しています。原因はオブジェクト指向で組んだことにあるかもしれませんが、解決策は不明です。
PHPでFilename cannot be empty他の警告(Wa
PHPでFilename cannot be empty他の警告(Warning)発生しています。
PHP初心者です。
テンプレートを使ってファイルを作成する機能をつくりました。
一応動いているようなのですが、実行するとWarningが発生します。
解消する方法をご存知でしたらご教授ください。
オブジェクト指向で組んでみたので、それが原因かもと思うのですが、解消
策がわからず困っています。
よろしくお願いします。
◆警告メッセージ
Warning: fopen(): Filename cannot be empty in C:\path\CreateFile.php on line 31
Warning: fwrite() expects parameter 1 to be resource, boolean given in C:\path\CreateFile.php on line 32
Warning: fclose() expects parameter 1 to be resource, boolean given in C:\path\CreateFile.php on line 33
以下サンプルコードです。
◆クラスファイル
<?php
class CreateFile
{
// テンプレートファイル名
public $templateFile;
// 保存ファイル名
public $createdFile;
// 置換キーワードセット arrayで指定
public $values;
// ファイル生成
public function createFile()
{
// ファイルを生成する
$data = "";
if($this->templateFile){
$data = file_get_contents($this->templateFile);
}
if (is_array($this->values)) {
foreach ($this->values as $key => $val) {
$data = str_replace($key, $val, $data);
}
}
// ファイルを生成する
$fp = fopen($this->createdFile, 'w');
fwrite($fp, $data);
fclose($fp);
}
}
?>
◆メイン
<?php
require_once './class/CreateFile.php';
// インスタンス生成
$cdFile = new CreateFile();
// テンプレート名設定
$cdFile->templateFile = './template.tpl';
// 保存ファイル名設定
$cdFile->createdFile = './hoge.txt';
$cdFile->values = array('<%VALUE>' => 'テストです');
$cdFile->createFile();
echo '++++++++++ End CreateFile ++++++++++';
?>
お礼
ご指摘ありがとうございます♪ コンストラクタのことを失念していました(^_^;) ぼけた頭でやるとだめですね。 早朝から回答ありがとうございました<m(__)m>