使用PHP如何读取多个TEXT文件并显示文件名?

问题描述:

我有一个PHP代码,可以读取文本文件并允许用户完美地搜索单词及其作品。使用PHP如何读取多个TEXT文件并显示文件名?

文件内容是阿拉伯语

当用户进行搜索,系统会显示与它存在的行号申请的字符串。

我现在想要的是让系统读取多个文本文件,当用户请求一个单词时,系统将显示他找到用户请求的文件的名称。

这是可能的,如果我有100个文件,这个过程需要多长时间?

代码:

<?php 

$myFile = "arabic text.txt"; 

$myFileLink = fopen($myFile, 'r'); 

$line = 1; 

if(isset($_POST["search"])) 
{ 
    $search =$_POST['name']; 

while(!feof($myFileLink)) 
{ 
    $myFileContents = fgets($myFileLink); 
    if(preg_match_all('/('.preg_quote($search,'/').')/i', $myFileContents, $matches)) 
    { 

     foreach($matches[1] as $match) 
     { 
      echo "Found $match on Line $line"; 
     } 

    } 

    ++$line; 

} 

} 

fclose($myFileLink); 

//echo $myFileContents; 
?> 

<html> 
    <head> 
    </head> 
    <meta http-equiv="Content-Language" content="ar-sa"> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <body> 
    <form action="index.php" method="post"> 
      <p>enter your string <input type ="text" id = "idName" name="name" /></p> 
      <p><input type ="Submit" name ="search" value= "Search" /></p> 
    </form> 
    </body> 
</html> 
+0

我会在执行函数建议grep命令,请参考此答案https://stackoverflow.com/a/17231293/6582942 – pravindot17

+0

@ pravindot17首先我使用PHP和我需要阅读的文字内容文件。 –

+0

我知道这就是为什么我建议使用php的exec函数来运行linux的grep – pravindot17

所以,你必须把你目前的工作代码放到一个函数,用函数返回你想要的内容。

function readFile($fileName) 
{ 
    // ...your code 
    return $yourMessage; 
} 

$fileNames = array("file1.txt", "file2.txt"); 
$result = array(); 
foreach($fileNames as $name) 
{ 
    $message = readFile($name); 
    $result[$name] = $message; 
} 

您现在可以遍历$ result并以您自己想要的方式打印它。

+0

我希望系统读取指定目录中存在的TEXT文件,我不想强​​制使用文件名,因为每天都会添加更多文件。 –

要将所有文件放入一个数组中,您可以使用scandir('/ mydir /')。

$files = scandir('/mydir/here/'); 
foreach($files as $file) { 
    if (strpos($file, '.txt')) { 
     //dosomething 
    } 
}