Php can';无法打开文件或找到文件夹
我似乎找不到名为invoice的文件夹,也不确定我的代码是否正确 我试图将写入更改为写入和读取,但它仍然没有在文件夹中为我创建文件Php can';无法打开文件或找到文件夹,php,file,session,directory,Php,File,Session,Directory,我似乎找不到名为invoice的文件夹,也不确定我的代码是否正确 我试图将写入更改为写入和读取,但它仍然没有在文件夹中为我创建文件 $invoice = "------------------------------------\n"; $invoice .= "Level 1 Monthly Subscriptionplan Information\n"; $invoice .= $level1."\n"; $invoice .= "Subscriptionplan:".$row['s
$invoice = "------------------------------------\n";
$invoice .= "Level 1 Monthly Subscriptionplan Information\n";
$invoice .= $level1."\n";
$invoice .= "Subscriptionplan:".$row['subscriptionplan']."\n";
$invoice .= "Enrollment Date:".$row['subscriptionplandate']."\n";
$invoice .= "Monthly Fees:".$row['feesmonthly']."\n";
$invoice .= "Payment Status:".$row['paid']."\n";
$invoice .= "Expiry Date:".$row['expirydate']."\n";
$invoice .= "Payment Due Date:".$row['paidbydate']."\n";
$myfile='invoice/level1monthly/'.$_SESSION['u_uid'].'.txt';
$fh = fopen($myfile, 'w+') or die("can't open file");
fwrite($fh, $invoice);
fclose($fh);
我希望它在live server的根目录中创建一个名为invoice的文件夹
Level 3 Monthly Subscriptionplan Information
Subscriptionplan:
Enrollment Date:
Monthly Fees:0
Payment Status:
Expiry Date:
Payment Due Date:
这是我的更新代码。。。在创建一个新文件(如果它不存在)并附加它时,这是否有效
$myfile='invoice/level1monthly'.$_SESSION['u_uid'].'.txt';
if(file_exists($myfile)) {
$invoice = "------------------------------------\n";
$invoice .= "Level 1 Monthly Subscriptionplan Information\n";
$invoice .= $level1."\n";
$invoice .= "Subscriptionplan:".$row['subscriptionplan']."\n";
$invoice .= "Enrollment Date:".$row['subscriptionplandate']."\n";
$invoice .= "Monthly Fees:".$row['feesmonthly']."\n";
$invoice .= "Payment Status:".$row['paid']."\n";
$invoice .= "Expiry Date:".$row['expirydate']."\n";
$invoice .= "Payment Due Date:".$row['paidbydate']."\n";
$fh = fopen($myfile, 'a+') or die("can't open file");
fwrite($fh, $invoice);
fclose($fh);
} else {
$invoice = "------------------------------------\n";
$invoice .= "Level 1 Monthly Subscriptionplan Information\n";
$invoice .= $level1."\n";
$invoice .= "Subscriptionplan:".$row['subscriptionplan']."\n";
$invoice .= "Enrollment Date:".$row['subscriptionplandate']."\n";
$invoice .= "Monthly Fees:".$row['feesmonthly']."\n";
$invoice .= "Payment Status:".$row['paid']."\n";
$invoice .= "Expiry Date:".$row['expirydate']."\n";
$invoice .= "Payment Due Date:".$row['paidbydate']."\n";
$myfile='invoice/level1monthly'.$_SESSION['u_uid'].'.txt';
$fh = fopen($myfile, 'w+') or die("can't open file");
fwrite($fh, $invoice);
fclose($fh);
}
如果尚未创建目录,则需要手动创建或使用
mkdir()
:
你也可以使用file\u put\u contents()
,我认为这更直截了当:
$invoice = "------------------------------------\n";
$invoice .= "Level 1 Monthly Subscriptionplan Information\n";
$invoice .= $level1."\n";
$invoice .= "Subscriptionplan:".$row['subscriptionplan']."\n";
$invoice .= "Enrollment Date:".$row['subscriptionplandate']."\n";
$invoice .= "Monthly Fees:".$row['feesmonthly']."\n";
$invoice .= "Payment Status:".$row['paid']."\n";
$invoice .= "Expiry Date:".$row['expirydate']."\n";
$invoice .= "Payment Due Date:".$row['paidbydate']."\n";
# I am assuming this script is happening in the root.
$dir = __DIR__.'/invoice/level1monthly/';
if(!is_dir($dir))
mkdir($dir, 1, 0755);
# Append
$myfile = $dir.$_SESSION['u_uid'].'.txt';
# Put contents
file_put_contents($myfile, $invoice);
echo is_file($myfile);
据我所知,使用w模式将尝试创建文件,但它不存在,但模式a也会创建文件吗?它已使用w+模式创建文件,但现在如果我想附加,是否需要添加a模式?我想,如果我想先创建一个新文件,然后再附加到它,我该如何让它工作呢?我这里有一些奇怪的东西,我应该把代码放在我的电子邮件之后还是电子邮件之前?这与订单有关吗?级别3月订阅计划信息订阅计划:注册日期:月费:0付款状态:到期日期:付款到期日期:启用错误报告。谢谢,我刚刚更新了代码,因为一些变量无法通过。。。我可以在这里使用$row变量,还是应该使用普通变量?也许$row变量是一个数组,所以我不能使用itI。我在这里也很困惑,因为我已经使用w模式为新用户创建了一个新文件,但是我如何将其改为append?假设用户想要创建一个新文件,如上图所示,但是对于每一个额外的升级,我想附加到它。我需要做一些类似于。。。if($file_exists($myfile){file_put_contents($myfile,“a”)}谢谢,if the file exists语句中我上面更新的代码正确吗?
$dir = __DIR__.'/invoice/level1monthly/';
# If directory doesn't exist
if(!is_dir($dir))
# Create it recursively and use folder permission 0755
mkdir($dir, 1, 0755);
$invoice = "------------------------------------\n";
$invoice .= "Level 1 Monthly Subscriptionplan Information\n";
$invoice .= $level1."\n";
$invoice .= "Subscriptionplan:".$row['subscriptionplan']."\n";
$invoice .= "Enrollment Date:".$row['subscriptionplandate']."\n";
$invoice .= "Monthly Fees:".$row['feesmonthly']."\n";
$invoice .= "Payment Status:".$row['paid']."\n";
$invoice .= "Expiry Date:".$row['expirydate']."\n";
$invoice .= "Payment Due Date:".$row['paidbydate']."\n";
# I am assuming this script is happening in the root.
$dir = __DIR__.'/invoice/level1monthly/';
if(!is_dir($dir))
mkdir($dir, 1, 0755);
# Append
$myfile = $dir.$_SESSION['u_uid'].'.txt';
# Put contents
file_put_contents($myfile, $invoice);
echo is_file($myfile);