PHP コレクション コード
ページ上のジョブ リストの最初の 3 つのレコードを収集します http://www.01job.cn/asp/itjob.asp
PHP コレクションのチュートリアルをたくさん読みましたが、まだ理解できません
以下は私のコードですが、実行時にエラーが発生します:
include("function.php") ;
$url="http://www.01job .cn/asp/itjob.asp";
$ft["title"]["begin"]="<テーブル幅='620' border='0' cellpacing='0' cellpadding='5' >";
$ft["title"]["end"]="";
$rs=pick ($url,$ft,$th);
echo $rs["title"];
echo "
コンテンツ:".$rs["content"]; >
function.php
//Web コンテンツを取得
Function fetch_urlpage_contents($url){
$c=file_get_contents($url);
return $ c;
}
//一致コンテンツを取得
Function fetch_match_contents($begin,$end,$c)
{
$begin=change_match_string($begin);
$end=change_match_string($end);
if( @preg_match("/{$begin}(.*?){$end}/i",$c,$rs))
{return $ rs[1];}
else {return ""; }
}
//エスケープ正規表現文字列
Function change_match_string($str){
//以下は単なるエスケープです
$old=array( "/","$");
$new=array("/","$");
$str=str_replace($old ,$new,$str);
return $str ;
}
//Web ページを収集
Function pick($url,$ft,$th)
{
$c=fetch_urlpage_contents($url);
foreach ($ft as $key => $value)
{
$rs[$key]=fetch_match_contents($value["begin"] ,$value["end"],$c);
if(is_array($th[$key]))
{ foreach($th[$key] as $old => $new)
{
$rs[$key]=str_replace( $old,$new,$rs[$key]);
}
}
}
return $rs;
}
?>
-----解決策------
//Web コンテンツを取得
Function fetch_urlpage_contents($url){
for($i=0;$i<10;$i++)
{
$c=@ file_get_contents($url);
if(trim($c) != "")break;
}
// print($c);
return $c; 🎜>
//一致するコンテンツを取得
Function fetch_match_contents($begin,$end,$c)
{
$beginPos = strpos($c,$begin);
$endPos = strpos($c,$end);
if($beginPos > 0 && $endPos > 0 && $endPos > $beginPos)
{
$result = substr($c,$beginPos +strlen($begin),$endPos - $beginPos-strlen($begin));
return $result;
}
else
{
return "";
}
}
//Web ページを収集
関数 pick($url,$ft,$th)
{
$c=fetch_urlpage_contents($url); ( $ft as $key => $value)
{
$rs[$key]=fetch_match_contents($value["begin"],$value["end"],$c); > if(is_array($th[$key]))
{ foreach($th[$key] as $old => $new)
{
$rs[$key]=str_replace( $ old,$new,$rs[$key]);
}
}
}
return $rs>