2011-02-03 11 views
0

私はPHPを使用しています。PHPで検索クエリのデータを掻き集める

私はクエリを受け取り、一致するいくつかのデータファイルを返すこのURLを持っています。

と言ってください。www.example.com/search?q=$query ここで、$ queryは検索語句が何であれです。

ただし、ブラウザのURLにアクセスすると、その情報が入ったテキストファイルがダウンロードされます。

アルファベット全体と10文字までのすべての文字を組み合わせて実行し、すべての返されたファイルからデータを抽出し、データベースに格納したいと考えています。

私は、PHPスクリプトから各URLを開く方法については正確にはわかりません。これを行うには、各ファイルをダウンロードして情報を抽出してファイルを削除するよりも良い方法はありますか?

私が以下で行っていることは、まったく動作しません。

$alphabet = "abcdefghijklmnopqrstuvwxyz"; 
for ($i=0; $i<=25; $i++){ 
    $query = $alphabet[$i]; 
    $url = "www.example.com/search?q=$query"; 
    $html = fopen($url); 
    $stringify = (string)$html; 
    echo $stringify; 
} 
+0

あなたのファイルは、あなたのファイルと同じサーバー上で実行されていますか? –

+0

私はあなたがスクリプトで深刻な何もしていない、知っているが、このような入力データを取ってそれをスクラブすることを確認してください。データが悪意を持って作成されていると、データベースに悪い結果を与える可能性があります。 Stack Overflowに関連する質問と回答がたくさんあります。 –

+0

とにかく、このスクリプトが同じサーバー上で実行されている場合は、より簡単にglob()を使用して[a-zA-Z] {1,10} .txt(または任意のファイル拡張子)のファイルを取得しますあなたのディレクトリに移動し、それらをループします。 –

答えて

1

あなただけはURLからファイルを開くことができません。ファイルを取得するには、HTTPクライアントライブラリを使用する必要があります。このリンクは便利になることがあります。HTTP Client Library for PHP


EDITは:アレックスさんのコメントをもとに、あなたはphp.iniファイルにallow_url_fopenをチェックすることもできます。

+3

'allow_url_fopen'が' php.ini'で有効になっていれば可能です。 – alex

+0

+1毎日新しいものを学ぶ – MarioVW

0
$html = fopen($url); 

これは機能しません。 fopenはファイルではなくファイルハンドルを返します。実際にデータを読み取るには、そのファイルハンドルにfread()が必要です。

あなたが望むのは、file_get_contents()で、ミニマムです。

関連する問題