не могу открыть файл или найти папку - PullRequest
0 голосов
/ 24 декабря 2018

Я не могу найти папку с именем 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);

Я ожидаю, что она создаст папку с именем invoice в моей корневой директории моего живого сервера

Level 3 Monthly Subscriptionplan Information

Subscriptionplan:
Enrollment Date:
Monthly Fees:0
Payment Status:
Expiry Date:
Payment Due Date:

Я сделал следующий код, но могуне могу изменить его, чтобы добавить

$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, '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);
                                  }

Это мой обновленный код ... Будет ли это работать с точки зрения создания нового файла, если он не существует, а затем добавить его?

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

1 Ответ

0 голосов
/ 24 декабря 2018

Если каталог еще не создан, вам нужно будет создать его вручную или использовать mkdir():

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

Вы также можете использовать file_put_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);
...