如何搜索文件并返回结果数组,以便我可以在PHP的集合中使用它?
因此,例如,假设我有一个.txt文件,其中包含:
hellohello
hihi
heywhats up
hello hey whats up
hello
我想搜索所有带有hello
及其行号的事件,然后将其作为数组返回,以便我可以在数据收集器中使用它。
因此,它将返回行号和行,如:
$results = array
(
array('1', 'hellohello'),
array('4', 'hello hey whats up'),
array('5', 'hello'),
);
我的想法是file_get_contents
。
所以,例如......
$file = 'example.txt';
function get_file($file) {
$file = file_get_contents($file);
return $file;
}
function searchFile($search_str) {
$matches = preg_match('/$search_str/i', get_file($file);
return $matches;
}
答案 0 :(得分:2)
作为替代方案,您还可以使用file()
函数,以便将整个文件读入数组。然后你可以循环,然后搜索。粗略的例子:
$file = 'example.txt';
$search = 'hello';
$results = array();
$contents = file($file);
foreach($contents as $line => $text) {
if(stripos($text, $search) !== false) {
$results[] = array($line+1, $text);
}
}
print_r($results);
旁注:stripos()
只是一个例子,您仍然可以使用您的其他方式/偏好来搜索特定行的针。