我只是PHP中的一个初学者所以我真的很抱歉,如果它只是一个愚蠢的问题。我有一个目录充满了.txt文件,我已经编写了一个代码来查找这些文件中的特定字符串并回显整行:
<?php
$search = $_POST['search'];
$dir = 'C:\xampp\htdocs\myfiles\dbl';
$files = scandir($dir,1);
foreach ($files as $lines){
foreach($lines as $line)
{
if(strpos($line, $search) !== false)
echo $line;
}
}
?>
但是,我一直收到此错误:警告:在第19行的C:\ xampp \ htdocs \ myfiles \ search.php中为foreach()提供的参数无效
答案 0 :(得分:1)
由于您实际上没有在第一个循环中打开文件而导致此错误。您必须在循环投掷行之前打开每个文件。 您可以通过两种方式实现:
1)使用file_get_contents()
功能
2)使用一些函数处理文件(fopen(),fclose()等)
转到here
答案 1 :(得分:0)
使用 fopen() 读取每个文件,然后搜索字符串
答案 2 :(得分:0)
$search = 'test';
$dir = 'C:\xampp5.6\htdocs';
$files = scandir($dir,1);
foreach ($files as $lines){
if(strlen($lines) > 3 && strpos($lines, '.txt') !== false){
$readfile = fopen('C:\xampp5.6\htdocs/'.$lines, 'r');
while(!feof($readfile)) {
$contents = fgets($readfile);
if(strpos($contents, $search) !== false)
echo $lines.'<br>';
}
fclose($readfile);
}
}