使用动态字符串时PHP fopen参数无效
我正在尝试动态创建迁移文件,但我遇到了fopen函数的问题,每当我使用文件名的动态字符串调用该函数时,我都会收到以下错误:使用动态字符串时PHP fopen参数无效,php,arguments,fopen,Php,Arguments,Fopen,我正在尝试动态创建迁移文件,但我遇到了fopen函数的问题,每当我使用文件名的动态字符串调用该函数时,我都会收到以下错误: "failed to open stream: Invalid Argument. 现在,wierd的事情是,当我获取导致错误的file_name字符串,并将其放入fopen函数中,它会工作并创建文件 以下是代码中失败的部分: public function add_tables($from, $to) { $migration_name = $this-
"failed to open stream: Invalid Argument.
现在,wierd的事情是,当我获取导致错误的file_name字符串,并将其放入fopen函数中,它会工作并创建文件
以下是代码中失败的部分:
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函数中时,文件创建成功。您尝试创建的文件不在服务器中,或者检查文件权限。您的文件名中可能有空格。可以使用“修剪”将其删除:
public function generate_migration_name($from, $to) {
$current_date = Date('Y_m_d_His');
return $current_date."_create_msl_".trim($from)."_to_".trim($to)."_table.php";
}
$migration\u name
里面有什么?你确定这是一根绳子吗?(我想是的,但是..你知道…魔法)用值$from
和$to
更新问题,这两个值会导致错误。@AlexBlex已更新。你是否回显生成迁移名称($from,$to)?@LucaJung是的,回显是我所期望的,就像我在更新中发布的示例字符串。当我尝试使用带有固定字符串的函数时,它成功地创建了文件,因此我认为这与文件不存在或权限无关。trim成功了!我试图用str_replace删除空白,但没有成功。非常感谢。