我有一個完美的調整大小的圖像此PHP代碼:smart_resize_image(path/to/image.jpg);
文件夾內調整圖像和子文件夾
現在,我想在一個文件夾中的所有圖像運行它說parent
和所有子文件夾child1
,child2
等..每小時。
這是我可以在共享主機上做的事嗎?是的,我可以設置cron,但我不確定如何在文件夾及其子文件夾上運行它。
謝謝!
我有一個完美的調整大小的圖像此PHP代碼:smart_resize_image(path/to/image.jpg);
文件夾內調整圖像和子文件夾
現在,我想在一個文件夾中的所有圖像運行它說parent
和所有子文件夾child1
,child2
等..每小時。
這是我可以在共享主機上做的事嗎?是的,我可以設置cron,但我不確定如何在文件夾及其子文件夾上運行它。
謝謝!
你正在尋找一個遞歸算法,通過文件夾下鑽:
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);
}
}
您可以使用glob函數查找文件,然後通過resize方法循環結果。請注意,它必須由cron完成,因爲它可能需要更長的時間才能在web服務器腳本環境中使用。
你必須建立一個遞歸函數。 這很簡單。 剛開始閱讀第一個目錄,如果你發現每個目錄都有自己的回調來解析每個文件夾。 這不是一個非常消費的功能。
看到這個:http://www.codingforums.com/showthread.php?t=71882
轉儲匹配所需的擴展陣列中的所有文件,然後運行調整大小功能他們。 爲避免任何內存問題,您可以通過CLI調用調整大小。 只需創建一個將文件路徑作爲參數的文件(而不是參數未獲取)並使用shell_exec()調用它即可。 這樣,它將在單獨的過程中逐個很好地運行它們,而不會影響主要的一個。
多處理PHP ..嘿嘿