(プログラミング言語:PHP v5.3)
私はこのウェブサイトで働いており、グーグルとビング検索APIを使用して特定のウェブサイトを検索しています。
プロジェクト:
ユーザーは、ドロップダウンリストから検索するWebサイトを選択できます。このウェブサイトには管理パネルがあります。管理者がドロップダウンリストに新しいWebサイトを追加する場合は、以下に示すように、サイトから2つのサンプルURLを提供する必要があります。
フォームの送信時に、コードは入力を通過し、後でパターンマッチングに使用する正規表現を生成します。正規表現は、後で使用するためにデータベースに保存されます。
別の形式では、訪問ユーザーはドロップダウンリストからWebサイトを選択します。次に、検索「クエリ」をテキストボックスに入力します。検索API(上記のとおり)を使用して結果をJSONとしてフェッチします。ここで、検索文字列として次のクエリ構文を使用します。
「site:websitequery」
(「website」をユーザーが検索用に選択したWebサイトに置き換え、「query」をユーザーの検索クエリに置き換えます)。
問題
今、私たちがしなければならないことは、URLの最良の一致を取得することです。パターンマッチングを行う理由は、検索結果に不要なリンクが含まれる場合があるためです。たとえば、ウェブサイト「www.example.com」で「abcd」という記事名を検索するとします。検索エンジンは次の2つのURLを返す可能性があります。
1)www.example.com/articles/854/abcd
2)www.example.com/search/abcd
最初のURLは私が欲しいものです。今、私は解決すべき2つの問題があります。
1)管理者が定期的にWebサイトを追加することを考えると、サンプルURLから正規表現パターンを作成するために作成したコードが完全になることは決してないことを私は知っています。同じコードから異なるWebサイトのパターンを作成するためのチェックを行うのに十分な条件はあり得ません。これを行うためのより良い方法はありますか、それとも正規表現が私の唯一の選択肢ですか?
2)Windows7OSを実行しているマシンで開発しています。preg_match_all()はここに結果を返します。しかし、Linux OSを実行しているサーバーにコードを移動すると、preg_match_all()は同じパラメーターの結果を返しませんか?なぜそうなっているのかわからないようです。なぜこれが起こっているのか誰もが知っていますか?
私は過去数週間だけWebテクノロジーに取り組んでいるので、正規表現よりも優れたオプションがあるかどうかはわかりません。私を助けてくれたり、問題の解決策を見つけることができるリソースに私を導いてくれたら、とてもありがたいです。