txtファイルを検索して結果を表示するPHPファイルがあります。
ただし、単語が大文字のテキストで書かれており、ユーザーが小文字で同じ単語を検索すると、PHP ファイルは一致が見つかりませんでした1 と表示します。
例えば:
txt ファイルに Apple Juice があります。ユーザーはリンゴ ジュースを検索します。PHP は、大文字を含むまったく同じ単語「Apple Juice」を探しているため、一致が見つからないことを示しています。
これは私のコードです:
<html>
<head><title>some title</title></head>
<body>
<?php
if(!empty($_POST['search'])) {
$file = 'mytxtfile.txt';
$searchfor = '';
// the following line prevents the browser from parsing this as HTML.
header('Content-Type: text/plain');
$searchfor = $_POST['search'];
$contents = file_get_contents($file);
$pattern = preg_quote($searchfor, '/');
$fullword = '\b\Q' . $w . '\E\b';
$regex = '/' . $fullword . '(?!.*' . $fullword . ')/i';
$pattern = "/^.*$pattern.*\$/m";
if(preg_match_all("/\b([a-z]+[A-Z]+[a-zA-Z]*|[A-Z]+[a-z]+[a-zA-Z]*)\b/", $pattern, $contents, $matches)){
echo "Population: \n";
echo implode("\n", $matches[0]);
}
else{
echo "No matches found";
}
header('Content-Type: text/html');
}
?>
<form method="post" action="">
<input type="text" name="search" />
<input type="submit" name="submit" />
</form>
</body>
</html>
if(preg_match_all("/\b([a-z]+[A-Z]+[a-zA-Z]*|[A-Z]+[a-z]+[a-zA-Z]*)\b/",
これをコードに追加しようとしましたが、うまくいきませんでした!
任意の助けをいただければ幸いです。
ありがとう