我有以下脚本来编写我从网上抓取的文件。
$newfname = $data['transferPath'] . '/' . $data['filename'];
$file = fopen ($data['filePath'], "rb");
if(!$file) {
throw new Exception('Unable to open file for reading ' . $file);
}
if($file) {
$newf = fopen ($newfname, "wb");
if(!$newf) {
throw new Exception("Cant open file for writing");
}
if($newf) {
while(!feof($file)) {
fwrite($newf, fread($file, 1024 * 8 ), 1024 * 8 );
}
}
}
if($file) {
fclose($file);
}
if($newf) {
fclose($newf);
}
当我发布数据并运行此脚本时,我继续获取用于写入的无法打开文件的异常,因为在同一目录中已有一个文件但该名称。我试图用新文件覆盖文件任何想法我能做什么。 iv尝试使用w和w +的fopen选项。如果存在,我需要完全覆盖那里的文件,否则创建文件。
答案 0 :(得分:1)
尝试将a+
结束参数用于fopen()
函数。
查看here以获取可能参数的完整列表,以及他们为找到合适的参数所做的工作!
如果这些都不能满足您的需求,那么您可以这样做:
$fopen($data['filePath'], "r");
if($file){
unlink($data['filePath']);
}
然后在删除文件之后,如果它在那里,那么只需使用fopen
参数执行另一个w
。