私はphpグラバーをプログラミングしています。いくつかのテキストを取得し、取得したコンテンツを前回のスキャンでデータベースに保存されたコンテンツと比較したいと考えています。すべて正常に動作します。しかし、「フィルター」フォームであるURLをスキャンしたいので、データを投稿しているため、スキャンする正確なURLが表示されません。スクリプトが必要なデータを含むフォームを送信して、スクリプトに必要なコンテンツを表示し、その後コンテンツを取得できるようにする方法はありますか?
そのようなもの
$url = 'myurl';
$data=get_data($url);
$grabbed=strip_tags(get_match('some regex',$data);
function get_data($url){
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
function get_match($regex,$content)
{
preg_match($regex,$content,$matches);
return $matches[1];
}
これはうまく機能しますが、コンテンツにアクセスできるようにするために、その URL にフォーム サブミソン スクリプトが必要です。それは可能ですか?
どうもありがとう、
マーティン。
アップデート :
<?php
//url
$url = "http://data.skga.sk/Tournaments.aspx";
//get the page content
$content = get_data($url);
echo $content;
//gets the match content
function get_match($regex,$content)
{
preg_match($regex,$content,$matches);
return $matches[1];
}
//gets the data from a URL
function get_data($url)
{
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "ctl00%24RightContentPlaceholder%24dpTo=20.10.2012");
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
?>
それが今の私のコードです。しかし、私はまだそれを解決する方法を知りません。ブラウザでhttp://data.skga.sk/Tournaments.aspx?ctl00%24RightContentPlaceholder%24dpTo=20.10.2012を実行すると問題ありません。しかし、このphpを実行すると、デフォルトのページが表示されます