curl 模拟提交post数据
/*
$url @ 提交地址
$postData 例
$postData = array(
'key'=>'value',
);
*/
function curlPost($url,$postData=array()) {
if(empty($url)) return false;
$o="";
foreach ($postData as $k=>$v){
$o.= "$k=".urlencode($v)."&";
}
$postData=substr($o,0,-1);
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
$contents = curl_exec($ch);
return $contents;
}
CURL 抓取页面
/*
* $url @ 抓去页面的地址
*/
function getcontents($url) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$contents = curl_exec($ch);
return $contents;
}
正则抓去Tabel 内容
/*
*$table @ 页面抓取过来的内容
*/
function get_td_array($table) {
// 去掉 HTML 标记属性
$table = preg_replace("'<table[^>]*?>'si", "", $table);
$table = preg_replace("'<tr[^>]*?>'si", "", $table);
$table = preg_replace("'<td[^>]*?>'si", "", $table);
$table = str_replace("</tr>", "{tr}", $table);
$table = str_replace("</td>", "{td}", $table);
// 去掉 HTML 标记
$table = preg_replace("'<[\/\!]*?[^<>]*?>'si", "", $table);
// 去掉空白字符
$table = preg_replace("'([\r\n])[\s]+'", "", $table);
$table = str_replace(" ", "", $table);
$table = str_replace(" ", "", $table);
$table = explode('{tr}', $table);
array_pop($table);
foreach ($table as $key => $tr) {
$td = explode('{td}', $tr);
array_pop($td);
$td_array[] = $td;
}
return $td_array;
}