Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php can';无法打开文件或找到文件夹_Php_File_Session_Directory - Fatal编程技术网

Php can';无法打开文件或找到文件夹

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的文件夹,也不确定我的代码是否正确

我试图将写入更改为写入和读取,但它仍然没有在文件夹中为我创建文件

$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);