[英]Distinguish between a directory and a file in php
我是php新手。 目前,我正在嘗試構建自己的站點映射php項目。 我的測試目錄位於自己的本地主機中,該主機具有一些其他項目,一些隨機文件和許多目錄。 我的目錄視圖默認為wamp,就像apache 2.4.9目錄列表一樣。
我正在使用file_get_contents($ url)來瀏覽目錄,並使用正則表達式來獲取標記的所有href,然后再次瀏覽它們。
我的問題是如何區分目錄或文件? 我不想將file_get_contents請求發送到任何類型的文件,而僅發送到目錄。 但是首先我需要知道哪個href是文件,而哪個不是目的。 有內置的php函數可以做到這一點嗎? 或關於我該怎么做的任何想法?
我已經找到了問題的答案或解決方法。 我想知道遠程/本地鏈接是文件還是目錄。 如果它是本地文件(php文件所在的目錄/域),則可以通過is_dir
和is_file
函數找到它。 如果它不在本地,則在檢測文件是否存在一些問題。 因此,我找到了解決方法,首先嘗試確定文件的大小,如果可以解析文件大小,則確定文件的大小,如果不能確定,則確定目錄的大小。 有了這個主意
https://gist.github.com/eyecatchup/f26300ffd7e50a92bc4d
function isItAFile($url)
{
$ch = curl_init($url);
curl_setopt_array($ch, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_NOBODY => 1,
));
curl_exec($ch);
$clen = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
curl_close($ch);
if (!$clen) {
return 0;
}else if($clen == -1){
return 0;
}else{
return 1;
}
}
echo isItAFile("http://google.com");
OFC這不是最終的答案,這甚至與我想要的解決方案都還不接近,但這是我得到的最好的解決方案。 如果你們中的任何人知道任何好的方法,請幫忙。 我是php和stackoverflow的新手。 對不起,我的英語不好
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.