據我所知,目前還沒有所做的正是這一個神奇的本地PHP函數,雖然它不會令人驚奇。
由於爲您編寫腳本不會幫助您學到很多東西,因此我認爲最好指出一些工具來應對此挑戰。
首先,您想要查找目錄中的所有PNG文件;要列出目錄中的所有文件(和目錄),請使用scandir($directory)。從那裏開始,你可以使用一個foreach循環遍歷返回的數組,並且只將PNG文件粘貼到一個新的數組中。
由於scandir的輸出不會使文件和目錄可辨,因此您可能需要在結果上運行is_dir以確保僅獲取文件。
然後,您可以使用pathinfo來檢索當前文件的擴展名和基本名(文件名不帶擴展名,在pathinfo的輸出中標記爲「文件名」)。您將需要擴展名來確定該文件是否爲PNG(因此需要添加到您的新陣列)。
一旦你迭代了scandir數組並且創建了一個包含PNG文件名的數組,你就可以開始構建最終的數組。您需要啓動另一個foreach循環,其中您將「http://www.domain.example/files/」添加到文件名中,並執行一些魔術將文件名轉換爲標題。你想陣列進行結構是這樣的:
$art = array(
array(
'href' => $full_url,
'title' => $title
),
array(
'href' => $full_url,
'title' => $title
),
// etc
);
拿到冠軍,我想這個看似複雜的一行去:
$title = ucwords(// Give words an upper case first letter
str_replace('_', ' ', //replace underscores by spaces
substr($filename, 0, (strlen($filename) - 4) //strip .png extension
)
);
一旦foreach循環完成後,你」將有一個完全填充藝術陣列。將此轉換爲JSON,您使用簡單json_encode,就像這樣:
$output = json_encode(array('art' => $art));
你提到你想將其保存爲一個JSON文件;你確定你不只是想讓PHP輸出JSON嗎?
無論哪種方式,保存文件,很容易,file_put_contents將完成這項工作。
如果您只是希望PHP輸出它,您需要將Content-Type HTTP標頭設置爲application/json:header('Content-Type: application/json');
,然後只需回顯$輸出。
希望有幫助!
(而且我意識到,這需要花費更多的精力,而不僅僅是寫一小段代碼,但至少您仍然需要做一些思考工作才能完成它。祝您好運!