複数のtxtファイルを読み込んで、単語のユーザー要求を検索するPHPコードがあり、そのコードが存在する場合は、要求された単語に行番号ファイル名を指定します。PHPを使用して各ファイルの行数をリセットするには
システムはすべてのtxtファイルを1つのファイルにまとめて行番号を数え続けるので、コードは完璧ですが問題は行番号にあります。私が欲しいもの
は、各ファイルの最初の行からのシステム起動を行うことである
例:
単語محليシステムのディスプレイに同じライン13 で7つのファイルに存在し、この:
- 語、アラビア語TEXT.TXTのライン[77]上に存在ライン[13]محلي
- ワード4-4-2017.txt中に存在محلي
- ワードمحليXXXX5-4-2017.txt
- の[240]ライン上に存在するワード線の[302]が存在محليمحليXXXX10-4-2017.txt
- の[175]ライン上の単語を存在XXXX6-4-2017.txt
- ワードمحليمحليワード
- XXXX7-4-2017.txt の[367]ライン上に存在XXXX-08-04-2017.txtの[431]ライン上に存在します
は、まだこの言葉は、ライン上のすべてのこれらのファイルに存在する13
コード:
<?php
$line = 1;
if(isset($_POST["search"]))
{
$search =$_POST['name'];
foreach(glob($_SERVER['DOCUMENT_ROOT']."/readfiletest/*.txt") as $txts)
{
$myFileLink = fopen($txts, 'r');
while(!feof($myFileLink))
{
$myFileContents = fgets($myFileLink);
if(preg_match_all('/('.preg_quote($search,'/').')/i', $myFileContents, $matches))
{
foreach($matches[1] as $match)
{
echo "the word $match exist on line [$line] in ";
}
echo basename ($txts) . "<br>".PHP_EOL;
//++$line;
}
++$line;
}
fclose($myFileLink);
}
}
?>
<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>
$行= 1を追加します。この行を最初から削除し、$ myFileLink = fopen($ txts、 'r')の前にforeachループの内側に追加します。 –
@AlamDarjiご協力いただきありがとうございます。 もし私がタイトルのように一度要求された単語を表示したいならば、それがどのように存在する場所を表示したいのですか? –