如何使用php保存子文件夹中的文件

时间:2016-09-02 08:08:00

标签: php

我有一个带有mysql查询的脚本,它通过运行cron作业每天自动保存一个名为 invoice.xml 的文件。如果没有找到数据,则保存 no_orders.txt

我希望此文件不会保存到与 script.php 文件相同的文件夹中,而是保存到名为发票的子文件夹中。

使用以下代码

重命名旧的 invoice.xml
 // rename old file
$nowshort = date("Y-m-d");
if(file_exists('invoice.xml')) {
  rename('invoice.xml','invoice_'.$nowshort.'.xml');
}  

使用以下代码完成保存:

if($xml1 !='') {    
    $File = "invoice.xml"; 
     $Handle = fopen($File, 'w');
     fwrite($Handle, $xml1);  
     print "Data Written - ".$nowMysql; 
     fclose($Handle); 
    #print $xml;
    die();
} else {
     print "No new orders - ".$nowMysql; 
     $File = "no_orders_".$nowshort.".txt"; 
     $Handle = fopen($File, 'w');  
     fclose($Handle);
     die();
}

我可以获得如何将此文件保存到子文件夹的帮助。此外,现有文件的重命名需要在子文件夹中。我已经尝试过像 ../ invoice / invoice.xml 这样的可能性,但遗憾的是没有任何成功。

谢谢

2 个答案:

答案 0 :(得分:0)

只需将文件'invoice.xml'的路径提供给$ File。 否则创建一个$ Dir对象,该对象将指向名为'invoice'的文件夹,然后相应地使用

答案 1 :(得分:0)

使用__DIR__ magic constant检索您的script.php目录,然后添加/invoice/invoice.xml。

示例如果脚本的路径是这样的: /var/www/path/to/script.php

$currentDir = __DIR__; //this wil return /var/www/path/to
$invoicePath = $currentDir.'/invoice/invoice.xml';