2016-06-10 191 views
1

因此,在您的幫助下,我已經能夠組裝下面。移動文件到目錄

$dir = "./reporting/live-metrics/"; 
$des = "./reporting/historic-metrics/"; 
$ctime = time(); 

foreach (glob($dir."*") as $file) { 

$live = file_get_contents($file); 

if (strpos($live, 'CORO') === false && filemtime($file) < time() - 1 * 10) { 
$exclude[] = $live; 
$lines = file($file , FILE_IGNORE_NEW_LINES); 
$lines[3] = 'Taken Down'; 
$lines[5] = $ctime; 
file_put_contents($file , implode("\n", $lines)); 
if (!file_exists($des.basename($file).PHP_EOL)) { 
mkdir($des.basename($file), 0777, true); 
} 
rename($file,$des.$ctime); 
} 
} 

我的問題是,我試圖將文件移動到創建的新目錄,但我有一個小問題。無論我做什麼,只能讓它移動到$ des,我似乎無法將ti移動到爲每個特定文件創建的動態目錄。我假設它與我不使用重命名到正確參數的事實有關。下面是我試圖讓它重命名和移動的一些組合。

rename($file,$des.basename($file).PHP_EOL.$ctime); //doesn't move or rename 
rename($file,$des.basename($file).$ctime); //adds to historic-metrics/ as jason1465519298 

我也試過創建一個函數並設置重命名來調用它。例如。

$path = $des.basename($file).PHP_EOL; 
rename($file,$path.$ctime); 

目前該腳本是偉大的,直到移動文件。它會將它移動到./reporting/historic-metrics/,但我希望它移動到剛創建的目錄。 EG,如果它是目前HANDELING文件名爲「傑森」,那麼它會創建./reporting/historic-metrics/Jason而是將文件移動到./reporting/historic-metrics/

回答

0

我終於明白了。我的主要問題是試圖讓文件路徑發送文件。經過幾次中斷並重新思考我的方法後,我想出了下面的內容。我知道這不是很漂亮,也不像可以做的那麼苗條,但它完美地完成了這項工作。

$dir = "./reporting/live-metrics/"; 
$des = "./reporting/historic-metrics/"; 
$ctime = time(); 

foreach (glob($dir."*") as $file) { 

$live = file_get_contents($file); 

if (strpos($live, 'CORO') === false && filemtime($file) < time() - 1 * 10) { 
    $exclude[] = $live; 
    $lines = file($file , FILE_IGNORE_NEW_LINES); 
    $lines[3] = 'Taken Down'; 
    $lines[5] = $ctime; 
    file_put_contents($file , implode("\n", $lines)); 
    if (!file_exists($des.basename($file).PHP_EOL)) { 
    mkdir($des.basename($file), 0777, true); 
} 
$user = basename($file); //Gets file name that was used in mkdir 
$path = (String) $des.$user."/"; //Compiles variables into string 
    rename($file,$path.$ctime); 
} 
} 
0

有似乎是兩種可能:

  1. 源或目標文件路徑可能是錯誤的,你可以打印和檢查

  2. 新創建的目標目錄是越來越 正確的權限&所有權。

否則你的腳本看起來不錯。

+0

編輯:源文件是罰款。它會將文件移動到以下目的地./reporting/historic-metrics/。我使用mkdir在這個例如./reporting/historic-metrics/Jason中創建一個文件夾,它基於它正在處理的文件。我正試圖將文件移動到目標中的這個Jason文件夾中。我遇到的問題是$ des內的目標文件夾是動態的,並且基於它正在處理的文件進行更改。 –

+0

還有權限和所有權嗎? –

+0

用圖像更新原圖,希望有更好的解釋。 –