2016-09-02 3 views
0

나는 cron 작업을 실행하여 invoice.xml이라는 파일을 자동으로 저장하는 mysql 쿼리를 사용하는 스크립트가 있습니다. 데이터가없는 경우 no_orders.txt이 저장됩니다.어떻게 파일을 하위 폴더에 저장합니까?

나는이 파일이 파일이 아니라 송장라는 하위 폴더에있는 이 script.php과 같은 폴더에 저장되지 싶습니다.

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.xml의 이름 변경은 절약 다음 코드를 사용하여 수행됩니다

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

다음 코드로 이루어집니다 이 파일을 하위 폴더에 저장하십시오. 또한 기존 파일의 이름을 바꾸려면 하위 폴더 내에 있어야합니다. 나는 이미 ../invoice/invoice.xml과 같은 가능성을 가지고 노력했지만, 불행히도 성공하지는 못했습니다.

+1

사용'송장/invoice.xml'의'.. /'bit는 하나의 폴더로 돌아가서'invoice'라는 폴더를 찾습니다. – RiggsFolly

+0

또한, www 데이터 사용자에게 폴더에 대한 쓰기 권한을 부여해야합니다. –

+0

감사합니다. invoice/invoice.xml은 완벽하게 작동합니다. 나는 또한 물론 폴더에 쓸 수있는 권리가있다. – user3358102

답변

0

그냥 $ 파일에 파일 'invoice.xml'의 경로를 제공 감사합니다. 그렇지 않으면 다음 다음 /invoice/invoice.xml을 추가 할 수 있습니다, 당신이 script.php 디렉토리를 검색 할 따라

0

사용 __DIR__magic constant를 사용, '송장'라는 이름의 폴더를 가리 몇 가지 $ 디렉터리 개체를 만듭니다.

예 경우이 같은 스크립트 PHP는 어떤 경로 : 경로로 /var/www/path/to/script.php

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

그의 코드를 사용하여 OP에 간단한 예제를 제공하십시오. – RiggsFolly

관련 문제