2012-05-14 65 views
0

我有一個完美的調整大小的圖像此PHP代碼:smart_resize_image(path/to/image.jpg);文件夾內調整圖像和子文件夾

現在,我想在一個文件夾中的所有圖像運行它說parent和所有子文件夾child1child2等..每小時。

這是我可以在共享主機上做的事嗎?是的,我可以設置cron,但我不確定如何在文件夾及其子文件夾上運行它。

謝謝!

回答

0

你正在尋找一個遞歸算法,通過文件夾下鑽:

resizing('/folder'); 

function resizing($folder) 
{ 
    foreach(scandir($folder) as $file) 
    { 
    $filepath = $folder . '/' . $file; 
    if(preg_match('/^\./', $file)) continue; // not . and .. 
    if(is_dir($filepath)) resizing($filepath); // Send it off to drill - with this function!! 
    // It's time to resize 
    smart_resize_image($filepath); 
    } 
} 
0

您可以使用glob函數查找文件,然後通過resize方法循環結果。請注意,它必須由cron完成,因爲它可能需要更長的時間才能在web服務器腳本環境中使用。

0

你必須建立一個遞歸函數。 這很簡單。 剛開始閱讀第一個目錄,如果你發現每個目錄都有自己的回調來解析每個文件夾。 這不是一個非常消費的功能。

看到這個:http://www.codingforums.com/showthread.php?t=71882

轉儲匹配所需的擴展陣列中的所有文件,然後運行調整大小功能他們。 爲避免任何內存問題,您可以通過CLI調用調整大小。 只需創建一個將文件路徑作爲參數的文件(而不是參數未獲取)並使用shell_exec()調用它即可。 這樣,它將在單獨的過程中逐個很好地運行它們,而不會影響主要的一個。

多處理PHP ..嘿嘿

相關問題