以下のような感じでどうでしょう。
このスクリプトは UTF-8 形式で保存して下さい。
<?php mb_internal_encoding('utf-8'); $myself = $_SERVER['SCRIPT_NAME']; $filename = 'my.db'; //検索対象のファイル名 $q = isset($_GET['q']) ? mb_convert_encoding($_GET['q'], 'utf-8', 'auto') : ''; $res = ''; //検索 if ($q != '') { $fp = fopen($filename, 'r'); while (! feof($fp)) { $str = fgets($fp); $str = mb_convert_encoding($str, 'utf-8', 'SJIS'); if (strstr($str, $q) != FALSE) { $res .= $str . '<br />'; } } fclose($fp); } if ($res == '') $res = '(一致するデータがありません)'; //結果表示 echo <<< EOD <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <form action={$myself} method="GET"> 検索キーワード <input type="text" name="q" /> <input type="submit" value="検索" /> </form> <p> 検索結果:<br /> {$res} </p> </body> </html> EOD; ?>
ご回答ありがとうございます。質問なのですが、”$filename = 'my.db'; //検索対象のファイル名”の部分は相対パスで書けばいいのでしょうか?