我想动态创建迁移文件,并遇到与fopen函数有关的问题,每当我使用动态字符串为文件名称调用函数时出现以下错误:使用动态字符串PHP fopen无效参数
"failed to open stream: Invalid Argument.
现在奇怪的是,当我把导致错误,并把它固定在fopen函数的字符串FILE_NAME,它的工作原理,并创建文件。
这里是失败的部分代码:
public function add_tables($from, $to) {
$migration_name = $this->generate_migration_name($from, $to);
$migration_file = fopen($migration_name, "w") or die("Unable to open file!");
$migration_content = "...";
fwrite($migration_file, $migration_content);
}
public function generate_migration_name($from, $to) {
$current_date = Date('Y_m_d_His');
return $current_date."_create_msl_".$from."_to_".$to."_table.php";
}
我我做错了什么?
更新:$to
和$from
是使用fgets函数从文本文件中读取的两个字符串。示例为失败的字符串:
2017_02_22_154148_create_msl_yeshut_yatzran_to_mimshak_table.php
当我把它固定在fopen函数中时,文件被成功创建。
'$ migration_name'里面有什么?你确定它是一个字符串吗? _(我认为是这样,但是......你知道......魔术)_ –
用值'$ from'和'$ to'来更新问题,结果出现错误。 –
@AlexBlex更新。 – BoooYaKa