3
我有一個我寫的python腳本,我需要移植到php。它遞歸地搜索給定的目錄並基於正則表達式搜索建立一個字符串。下面是我嘗試移植的第一個函數。它需要一個正則表達式和一個基本目錄,遞歸搜索該目錄中的所有文件以獲取正則表達式,並構建一個字符串匹配列表。從Python到PHP的GREP功能
def grep(regex, base_dir):
matches = list()
for path, dirs, files in os.walk(base_dir):
for filename in files:
fullpath = os.path.join(path, filename)
with open(fullpath, 'r') as f:
content = f.read()
matches = matches + re.findall(regex, content)
return matches
我從來不使用PHP,除了基本的GET參數操作。由於我完全缺乏php API,我從網上抓取了一些目錄行走代碼,並且努力使它像上面的python函數一樣工作。
function findFiles($dir = '.', $pattern = '/./'){
$prefix = $dir . '/';
$dir = dir($dir);
while (false !== ($file = $dir->read())){
if ($file === '.' || $file === '..') continue;
$file = $prefix . $file;
if (is_dir($file)) findFiles($file, $pattern);
if (preg_match($pattern, $file)){
echo $file . "\n";
}
}
}
爲什麼不簡單地在cli上使用grep? 'grep -d遞歸'你的字符串'? –
看看[glob()](http://us2.php.net/manual/en/function.glob.php) –
我點擊這個PHP腳本通過一個http請求,並需要返回的值在一定格式,所以常規的grep將不起作用。將檢查出glob()=。 – bitpshr