私は、ウェブサイト上のパッケージのテキストファイルリポジトリをスキャンし、それぞれの一致のURLを返すPHP検索スクリプトに取り組んでいます。テキストファイルには、以下のようになります。以下のようにテキストファイル内のキーワードを検索する
PACKAGE NAME: package_one
PACKAGE LOCATION: ./package_one
PACKAGE VERSION: 0.1.2
PACKAGE NAME: package_two
PACKAGE LOCATION: ./package_two
PACKAGE VERSION: 0.2.1
PACKAGE NAME: package_three
PACKAGE LOCATION: ./package_three
PACKAGE VERSION: 1.3.4
PACKAGE NAME: package_one
PACKAGE LOCATION: ./package_one
PACKAGE VERSION: 0.1.2
マイ検索スクリプトは、現在になります
<?
$search = $_POST['search']; //Passed from a user input form
$data_file = file('http://www.example.com/data_file.txt'); //The text file repository
$final_concatenated_results = "";
for ($i = 0, $found = FALSE; isset($data_file[$i]); $i++) {
if (trim($data_file[$i]) === $search) {
$cleanse = trim($data_file[++$i]);
$output_part_one = strstr($cleanse, '.');
$output_part_two = "http://www.example.com/packages_repository/".$output_part_one;
$add_this = "<a href='$output_part_two'>$output_part_two</a>"."<br/>";
$found = TRUE;
$final_concatenated_results.=$add_this;
} }
if ($found == TRUE) {
echo $final_results;
}
if ($found == FALSE) {
echo "Error, package not found.";
}
?>
例えば、場合「パッケージ名:package_twoは」そのまま本に入力された出力になります - http://www.example.com/packages_repository/./package_oneこれはうまく動作します。
"package name:package_two"と入力するのではなく、 "package_two"または単に "two"や "tw"のように入力するのではなく、コードを変更する方法を知りたいのですが。どのくらいの微調整が必要でしょうか?
また、結果のURLをすべて1つの文字列に連結する変数を作ったので、 "package_one"が検索された場合、2つのURLが返されます...私はコードをそのまま1つのURLを生成します。
**パッケージ名が一致した直後に、 "PACKAGE LOCATION:"の次の文字列が見つかります。 URLを取得する
すべての入力をいただきありがとうございます!
あなたはどこに行くのか分かります。ユーザーが "package_tw"と入力した場合、それを "package_two"の一致として扱う方法はありますか?また、私が爆発するのは簡単で可能なのだろうか?ファイル全体を整理して、各行が配列インデックスであったので、私はstripos()を実行することができました。その行の索引を検索して追加し、preg_replace()を使用します。出力から "LOCATION:"部分を削除するには?ありがとう、ジェロ! – user1062058
@ user1062058 'package_tw'は上記のコードで' package_two'、 'package_twenty'、' PACKAGE_twO'などとマッチします。他の質問については検索部分とは無関係のようですので、別の質問元のもので探している正確な出力を指定することができます。 – jeroen
よろしくお願いします。私はここで私の質問は、このトピックについては、あなたの答えは、他の人に多くの助けになることを検索するときにGoogleで#3ランクされている気づいた。良い一日を。 – user1062058