我有一个PHP代码,它可以读取文本文件,并允许用户搜索一个单词及其完美的工作。
文件内容是阿拉伯语
当用户进行搜索时,系统将用行号显示请求的字符串。
我现在想要的是让系统读取多个文本文件,当用户请求一个单词时,系统将显示他找到用户请求的文件名。
如果我有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>
发布于 2017-12-27 04:47:44
因此,您必须将当前工作的代码放入一个函数中,函数返回所需的内容。
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上进行迭代,并以自己想要的方式打印它。
发布于 2017-12-27 05:12:03
要将所有文件都放到一个数组中,可以使用scandir('/mydir/')。
$files = scandir('/mydir/here/');
foreach($files as $file) {
if (strpos($file, '.txt')) {
//dosomething
}
}
https://stackoverflow.com/questions/47992424
复制相似问题