当前位置:Gxlcms > PHP教程 > 抓取“中国IC网”供应商程序_PHP教程

抓取“中国IC网”供应商程序_PHP教程

时间:2021-07-01 10:21:17 帮助过:8人阅读

/**
* 抓取“中国 IC 网(http://www.ic37.com)”供应商主程序
* author Lee.
* Last modify $Date: 2012-2-9 9:32:21 $
* 注:本程序按照编码 GB2312 执行,因为“中国 IC 网”网站是GB2312编码,数据库也得保持一致
*/
class ic37 {
private $key; // 型号
private $pageNum; // 页码

/**
* 入口程序
*/
public function go($key) {
$this->key = $key;
$this->pageNum = $this->getPageNum();
$this->getInfo();
}

/**
* 获取供应商 url 链接数组
* @return ArrayObject
*/
private function getInfo() {
if ($this->pageNum==1) { # 处理只有一页的情况
$arr = $this->shopAddContact($this->shopUrlMatchReArr($this->getContent()));
$this->isAddSuccess($arr);
} elseif ($this->pageNum>1) { # 多页
for ($i=1; $i<=$this->pageNum; $i++) {
$arr = $this->shopAddContact($this->shopUrlMatchReArr($this->getContent($i)));
$this->isAddSuccess($arr);
}
}
}

/**
* 打印是否添加成功
* @param ArrayObject $arr
* @return string
*/
private function isAddSuccess($arr) {
foreach ($arr as $k=>$v) {
if ($this->execAdd($this->getInfoByShopUrl($v))) {
echo 'Add Success!!';
} else {
echo 'Add Faild!!';
}
}
}

/**
* 执行添加到数据库
* @param ArrayObject $infoArr
* @return Number 受影响的行数
*/
private function execAdd($infoArr) {
$mysqli = $this->getDb();
if (!emptyempty($infoArr['company'])) {
if (!$this->isExists($mysqli, $infoArr)) {
$num = $mysqli->query("INSERT INTO ic37(company,person,phone,mobile,qq,msn,fax,email,address,country,region,zip,web,shopUrl) VALUES ('{$infoArr['company']}','{$infoArr['person']}','{$infoArr['phone']}','{$infoArr['mobile']}','{$infoArr['qq']}','{$infoArr['msn']}','{$infoArr['fax']}','{$infoArr['email']}','{$infoArr['address']}','{$infoArr['country']}','{$infoArr['region']}','{$infoArr['zip']}','{$infoArr['web']}','{$infoArr['shopUrl']}')");
return $num;
} else {
return false; # 表示数据已经存在
}
} else {
return false;
}
}

private function formatStr($str) {
$str = trim($str);
$str = str_replace(' ', '', $str);
$str = str_replace('==联系我们', '', $str);
return $str;
}

/**
* 连接数据库
*/
private function getDb() {
$mysqli = new mysqli('localhost', 'root', '1715544', 'weiku');
$mysqli->query('SET NAMES GB2312');
return $mysqli;
}

/**
* 检查公司是否已经存在
* @param Resource $mysqli
* @param ArrayObject $infoArr
* @return bool
*/
private function isExists($mysqli, $infoArr) {
$mysqli->query("SELECT company FROM weiku WHERE company = '{$infoArr['company']}'");
if ($mysqli->affected_rows) {
return true;
} else {
return false;
}
}

/**
* 抓取信息
* @param $url
* @return ArrayObject
*/
private function getInfoByShopUrl($url) {
$re = preg_replace('/(.*)<\/a>/', '\1', str_replace('', '', str_replace('', '', $this->getUrlInfo($url))));
preg_match_all('/(.*)<\/title>/Usi', $re, $companyArr); <br /> preg_match_all('/<strong>联系人:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $personArr); <br /> preg_match_all('/<strong>电话:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $phoneArr); <br /> preg_match_all('/<strong>手机:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $mobileArr); <br /> preg_match_all('/<strong>QQ:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $qqArr); <br /> preg_match_all('/<strong>MSN:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $msnArr); <br /> preg_match_all('/<strong>传真:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $faxArr); <br /> preg_match_all('/<strong>EMail:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $emailArr); <br /> preg_match_all('/司地址[:]*[<\/strong>]*[<strong>]*[:]*[<\/strong>]*<\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $addressArr); <br /> preg_match_all('/<strong>国家[:]*<\/strong>[<strong>]*[:]*[<\/strong>]*<\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $countryArr); <br /> preg_match_all('/<strong>地区:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $regionArr); <br /> preg_match_all('/<strong>邮政编码:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $zipArr); <br /> preg_match_all('/<strong>\s*网址[1]*:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $webArr); <br /> $infoArr = array( <br /> 'company'=>$this->formatStr($companyArr[1][0]), <br /> 'person'=>$this->formatStr($personArr[1][0]), <br /> 'phone'=>$this->formatStr($phoneArr[1][0]), <br /> 'mobile'=>$this->formatStr($mobileArr[1][0]), <br /> 'qq'=>$this->formatStr($qqArr[1][0]), <br /> 'msn'=>$this->formatStr($msnArr[1][0]), <br /> 'fax'=>$this->formatStr($faxArr[1][0]), <br /> 'email'=>$this->formatStr($emailArr[1][0]), <br /> 'address'=>$this->formatStr($addressArr[1][0]), <br /> 'country'=>$this->formatStr($countryArr[1][0]), <br /> 'region'=>$this->formatStr($regionArr[1][0]), <br /> 'zip'=>$this->formatStr($zipArr[1][0]), <br /> 'web'=>$this->formatStr($webArr[1][0]), <br /> 'shopUrl'=>$url <br /> ); <br /> return $infoArr; <br /> } <br /> <br /> /**<br /> * 根据页面获取供应商 url 数组<br /> * @param string $re<br /> * @return ArrayObject<br /> */ <br /> private function shopUrlMatchReArr($re) { <br /> preg_match_all('/<p class="Company">[<font color="#FF0000">]*.*[<\/font>]*<\/a>\s*<\/p>/Usi', $re, $arr); <br /> $arr = $this->formatUrlArr(array_unique($arr[1])); <br /> return $arr; <br /> } <br /> <br /> /**<br /> * 格式化数组<br /> * @param Array $arr<br /> * @return ArrayObject<br /> */ <br /> private function formatUrlArr($arr) { <br /> $newArr = array(); <br /> foreach ($arr as $key=>$value) { <br /> if ($this->isExistsHttp($value)) { <br /> $newArr[$key] = $value; <br /> } <br /> } <br /> return $newArr; <br /> } <br /> <br /> /**<br /> * 格式化 QQ<br /> * @param string $str<br /> * @return string<br /> */ <br /> private function formatQqMsn($str, $e='QQ') { <br /> if (emptyempty($str)) return ''; <br /> preg_match_all('/alt="'.$e.'\:(.+)"/Usi', $str, $arr); <br /> if (count($arr[1])==1) return $arr[1][0]; <br /> $newStr = null; <br /> foreach ($arr[1] as $value) { <br /> $newStr .= $value . ' '; <br /> } <br /> return rtrim($newStr, ' '); <br /> } <br /> <br /> /**<br /> * 供应商店铺链接添加 contact.asp<br /> * @param array $arr<br /> * @return string <br /> */ <br /> private function shopAddContact($arr) { <br /> foreach ($arr as $k=>$v) { <br /> if (stristr($v, 'contact.asp')===FALSE) <br /> $newArr[$k] = $this->addContact($v); <br /> else <br /> $newArr[$k] = $v; <br /> } <br /> return $newArr; <br /> } <br /> <br /> /**<br /> * 链接添加 contact.asp<br /> * @param string $str<br /> * @return string <br /> */ <br /> private function addContact($str) { <br /> return $str . '/contact.asp'; <br /> } <br /> <br /> /**<br /> * 去掉网址的 A 标签<br /> * @param string $site<br /> * @return string<br /> */ <br /> private function stripATags($site) { <br /> $site = preg_replace('/(.+)<\/a>/', '\1', $site); <br /> return $site; <br /> } <br /> <br /> /**<br /> * 检查 url 是否有 http<br /> * @param string $url<br /> * @return bool<br /> */ <br /> private function isExistsHttp($url) { <br /> if (stristr($url, 'http://')) { <br /> return true; <br /> } else { <br /> return false; <br /> } <br /> } <br /> <br /> /**<br /> * 获取页面内容<br /> * @param Number $page<br /> * @return string<br /> */ <br /> private function getContent($page=1) { <br /> $re = file_get_contents($this->getUrl($this->key, $page)); <br /> return $re; <br /> } <br /> <br /> /**<br /> * 获取页码<br /> * @return Number<br /> */ <br /> private function getPageNum() { <br /> preg_match_all('/共.*条记录分(.*)页显示/Usi', $this->getContent(), $arr); <br /> return $arr[1][0]; <br /> } <br /> <br /> /**<br /> * 获取 URL 链接<br /> * @param string $str<br /> * @param int $page 页码<br /> * @return string<br /> */ <br /> private function getUrl($str, $page=1) { <br /> return "http://www.ic37.com/sell/search.asp?keyword={$str}&x=86&y=22&page={$page}"; <br /> } <br /> <br /> /**<br /> * 获取页面内容<br /> * @param string $url<br /> * @return string<br /> */ <br /> private function getUrlInfo($url) { <br /> $re = file_get_contents($url); <br /> return $re; <br /> } <br /> } <br /> <br /> /*<br /> 程序运行思路:根据“中国 IC 网”的IC搜索功能,输入型号进行搜索,然后抓取供应商信息<br /> <br /> 数据库结构<br /> CREATE TABLE `ic37` (<br /> `id` mediumint(8) unsigned NOT NULL auto_increment,<br /> `company` varchar(500) default NULL,<br /> `person` varchar(500) default NULL,<br /> `phone` varchar(500) default NULL,<br /> `mobile` varchar(500) default NULL,<br /> `qq` varchar(500) default NULL,<br /> `msn` varchar(500) default NULL,<br /> `fax` varchar(500) default NULL,<br /> `email` varchar(500) default NULL,<br /> `address` varchar(1000) default NULL,<br /> `country` varchar(500) default NULL,<br /> `region` varchar(500) default NULL,<br /> `zip` varchar(500) default NULL,<br /> `web` varchar(500) default NULL,<br /> `shopUrl` varchar(500) default NULL,<br /> PRIMARY KEY (`id`)<br /> ) ENGINE=InnoDB DEFAULT CHARSET=gb2312<br /> */ <br /> <br /> $k = new ic37(); <br /> $arr = array_unique(array('MAX3232', 'AML8613', 'MT6225A', 'OM8373PS/N3/A', 'PT7313', 'MAX8212ESA', 'TL431', 'S3C2440', 'TMS320F2812PGFA', 'PCM1704', 'AN6717', 'CA3162E', 'CA3161E', 'LM393N', 'DS18B20', 'SHT10', 'AML8613', 'AN6717', 'LM393N', 'CA3161E', 'CA3162E', 'PCM1704', 'STK392-040', 'K1667', 'MAX232', 'STM32F103', 'LM358', 'NE555', '78L05', 'LM324', 'TL431', 'PC817', '7805', 'LM339', 'LM317', '46A-3GRI', 'MODEL', '78L05', '93C46-3GRI', '8050', 'DS18B20', 'TDA2030', 'LM393', '74HC595', '6N137', 'SN75176BDR')); <br /> foreach ($arr as $v) { <br /> $k->go($v); <br /> } <br /> ?> <br /> <?php<br /> /**<br /> * 抓取“中国 IC 网(http://www.ic37.com)”供应商主程序<br /> * author Lee.<br /> * Last modify $Date: 2012-2-9 9:32:21 $<br /> * 注:本程序按照编码 GB2312 执行,因为“中国 IC 网”网站是GB2312编码,数据库也得保持一致<br /> */<br /> class ic37 {<br /> private $key; // 型号<br /> private $pageNum; // 页码</p> <p> /**<br /> * 入口程序<br /> */<br /> public function go($key) {<br /> $this->key = $key;<br /> $this->pageNum = $this->getPageNum();<br /> $this->getInfo();<br /> }</p> <p> /**<br /> * 获取供应商 url 链接数组<br /> * @return ArrayObject<br /> */<br /> private function getInfo() {<br /> if ($this->pageNum==1) { # 处理只有一页的情况<br /> $arr = $this->shopAddContact($this->shopUrlMatchReArr($this->getContent()));<br /> $this->isAddSuccess($arr);<br /> } elseif ($this->pageNum>1) { # 多页<br /> for ($i=1; $i<=$this->pageNum; $i++) {<br /> $arr = $this->shopAddContact($this->shopUrlMatchReArr($this->getContent($i)));<br /> $this->isAddSuccess($arr);<br /> }<br /> } <br /> }<br /> <br /> /**<br /> * 打印是否添加成功<br /> * @param ArrayObject $arr<br /> * @return string<br /> */<br /> private function isAddSuccess($arr) {<br /> foreach ($arr as $k=>$v) {<br /> if ($this->execAdd($this->getInfoByShopUrl($v))) {<br /> echo 'Add Success!!';<br /> } else {<br /> echo 'Add Faild!!';<br /> }<br /> }<br /> }</p> <p> /**<br /> * 执行添加到数据库<br /> * @param ArrayObject $infoArr<br /> * @return Number 受影响的行数<br /> */<br /> private function execAdd($infoArr) {<br /> $mysqli = $this->getDb();<br /> if (!empty($infoArr['company'])) {<br /> if (!$this->isExists($mysqli, $infoArr)) {<br /> $num = $mysqli->query("INSERT INTO ic37(company,person,phone,mobile,qq,msn,fax,email,address,country,region,zip,web,shopUrl) VALUES ('{$infoArr['company']}','{$infoArr['person']}','{$infoArr['phone']}','{$infoArr['mobile']}','{$infoArr['qq']}','{$infoArr['msn']}','{$infoArr['fax']}','{$infoArr['email']}','{$infoArr['address']}','{$infoArr['country']}','{$infoArr['region']}','{$infoArr['zip']}','{$infoArr['web']}','{$infoArr['shopUrl']}')");<br /> return $num;<br /> } else {<br /> return false; # 表示数据已经存在<br /> }<br /> } else {<br /> return false;<br /> }<br /> }<br /> <br /> private function formatStr($str) {<br /> $str = trim($str);<br /> $str = str_replace(' ', '', $str);<br /> $str = str_replace('==联系我们', '', $str);<br /> return $str;<br /> }</p> <p> /**<br /> * 连接数据库<br /> */<br /> private function getDb() {<br /> $mysqli = new mysqli('localhost', 'root', '1715544', 'weiku');<br /> $mysqli->query('SET NAMES GB2312');<br /> return $mysqli;<br /> }</p> <p> /**<br /> * 检查公司是否已经存在<br /> * @param Resource $mysqli<br /> * @param ArrayObject $infoArr<br /> * @return bool<br /> */<br /> private function isExists($mysqli, $infoArr) {<br /> $mysqli->query("SELECT company FROM weiku WHERE company = '{$infoArr['company']}'");<br /> if ($mysqli->affected_rows) {<br /> return true;<br /> } else {<br /> return false;<br /> }<br /> }</p> <p> /**<br /> * 抓取信息<br /> * @param $url<br /> * @return ArrayObject<br /> */<br /> private function getInfoByShopUrl($url) {<br /> $re = preg_replace('/(.*)<\/a>/', '\1', str_replace('</font>', '', str_replace('<font color="#000099">', '', $this->getUrlInfo($url))));<br /> preg_match_all('/<title>(.*)<\/title>/Usi', $re, $companyArr);<br /> preg_match_all('/<strong>联系人:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $personArr);<br /> preg_match_all('/<strong>电话:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $phoneArr);<br /> preg_match_all('/<strong>手机:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $mobileArr);<br /> preg_match_all('/<strong>QQ:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $qqArr);<br /> preg_match_all('/<strong>MSN:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $msnArr);<br /> preg_match_all('/<strong>传真:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $faxArr);<br /> preg_match_all('/<strong>EMail:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $emailArr);<br /> preg_match_all('/司地址[:]*[<\/strong>]*[<strong>]*[:]*[<\/strong>]*<\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $addressArr);<br /> preg_match_all('/<strong>国家[:]*<\/strong>[<strong>]*[:]*[<\/strong>]*<\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $countryArr);<br /> preg_match_all('/<strong>地区:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $regionArr);<br /> preg_match_all('/<strong>邮政编码:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $zipArr);<br /> preg_match_all('/<strong>\s*网址[1]*:<\/strong><\/td>\s*<td.*>(.*)<\/td>/Usi', $re, $webArr);<br /> $infoArr = array(<br /> 'company'=>$this->formatStr($companyArr[1][0]),<br /> 'person'=>$this->formatStr($personArr[1][0]),<br /> 'phone'=>$this->formatStr($phoneArr[1][0]),<br /> 'mobile'=>$this->formatStr($mobileArr[1][0]),<br /> 'qq'=>$this->formatStr($qqArr[1][0]),<br /> 'msn'=>$this->formatStr($msnArr[1][0]),<br /> 'fax'=>$this->formatStr($faxArr[1][0]),<br /> 'email'=>$this->formatStr($emailArr[1][0]),<br /> 'address'=>$this->formatStr($addressArr[1][0]),<br /> 'country'=>$this->formatStr($countryArr[1][0]),<br /> 'region'=>$this->formatStr($regionArr[1][0]),<br /> 'zip'=>$this->formatStr($zipArr[1][0]),<br /> 'web'=>$this->formatStr($webArr[1][0]),<br /> 'shopUrl'=>$url<br /> );<br /> return $infoArr;<br /> }</p> <p> /**<br /> * 根据页面获取供应商 url 数组<br /> * @param string $re<br /> * @return ArrayObject<br /> */<br /> private function shopUrlMatchReArr($re) {<br /> preg_match_all('/<p class="Company">[<font color="#FF0000">]*.*[<\/font>]*<\/a>\s*<\/p>/Usi', $re, $arr);<br /> $arr = $this->formatUrlArr(array_unique($arr[1]));<br /> return $arr;<br /> }<br /> <br /> /**<br /> * 格式化数组<br /> * @param Array $arr<br /> * @return ArrayObject<br /> */<br /> private function formatUrlArr($arr) {<br /> $newArr = array();<br /> foreach ($arr as $key=>$value) {<br /> if ($this->isExistsHttp($value)) {<br /> $newArr[$key] = $value;<br /> }<br /> }<br /> return $newArr;<br /> }<br /> <br /> /**<br /> * 格式化 QQ<br /> * @param string $str<br /> * @return string<br /> */<br /> private function formatQqMsn($str, $e='QQ') {<br /> if (empty($str)) return '';<br /> preg_match_all('/alt="'.$e.'\:(.+)"/Usi', $str, $arr);<br /> if (count($arr[1])==1) return $arr[1][0];<br /> $newStr = null;<br /> foreach ($arr[1] as $value) {<br /> $newStr .= $value . ' ';<br /> }<br /> return rtrim($newStr, ' ');<br /> }</p> <p> /**<br /> * 供应商店铺链接添加 contact.asp<br /> * @param array $arr<br /> * @return string <br /> */<br /> private function shopAddContact($arr) {<br /> foreach ($arr as $k=>$v) {<br /> if (stristr($v, 'contact.asp')===FALSE)<br /> $newArr[$k] = $this->addContact($v);<br /> else<br /> $newArr[$k] = $v;<br /> }<br /> return $newArr;<br /> }<br /> <br /> /**<br /> * 链接添加 contact.asp<br /> * @param string $str<br /> * @return string <br /> */<br /> private function addContact($str) {<br /> return $str . '/contact.asp';<br /> }</p> <p> /**<br /> * 去掉网址的 A 标签<br /> * @param string $site<br /> * @return string<br /> */<br /> private function stripATags($site) {<br /> $site = preg_replace('/(.+)<\/a>/', '\1', $site);<br /> return $site;<br /> }</p> <p> /**<br /> * 检查 url 是否有 http<br /> * @param string $url<br /> * @return bool<br /> */<br /> private function isExistsHttp($url) {<br /> if (stristr($url, 'http://')) {<br /> return true;<br /> } else {<br /> return false;<br /> }<br /> }<br /> <br /> /**<br /> * 获取页面内容<br /> * @param Number $page<br /> * @return string<br /> */<br /> private function getContent($page=1) {<br /> $re = file_get_contents($this->getUrl($this->key, $page));<br /> return $re;<br /> }<br /> <br /> /**<br /> * 获取页码<br /> * @return Number<br /> */<br /> private function getPageNum() {<br /> preg_match_all('/共.*条记录分(.*)页显示/Usi', $this->getContent(), $arr);<br /> return $arr[1][0];<br /> }</p> <p> /**<br /> * 获取 URL 链接<br /> * @param string $str<br /> * @param int $page 页码<br /> * @return string<br /> */<br /> private function getUrl($str, $page=1) {<br /> return "http://www.ic37.com/sell/search.asp?keyword={$str}&x=86&y=22&page={$page}";<br /> }</p> <p> /**<br /> * 获取页面内容<br /> * @param string $url<br /> * @return string<br /> */<br /> private function getUrlInfo($url) {<br /> $re = file_get_contents($url);<br /> return $re;<br /> }<br /> }</p> <p>/*<br /> 程序运行思路:根据“中国 IC 网”的IC搜索功能,输入型号进行搜索,然后抓取供应商信息</p> <p>数据库结构<br /> CREATE TABLE `ic37` (<br /> `id` mediumint(8) unsigned NOT NULL auto_increment,<br /> `company` varchar(500) default NULL,<br /> `person` varchar(500) default NULL,<br /> `phone` varchar(500) default NULL,<br /> `mobile` varchar(500) default NULL,<br /> `qq` varchar(500) default NULL,<br /> `msn` varchar(500) default NULL,<br /> `fax` varchar(500) default NULL,<br /> `email` varchar(500) default NULL,<br /> `address` varchar(1000) default NULL,<br /> `country` varchar(500) default NULL,<br /> `region` varchar(500) default NULL,<br /> `zip` varchar(500) default NULL,<br /> `web` varchar(500) default NULL,<br /> `shopUrl` varchar(500) default NULL,<br /> PRIMARY KEY (`id`)<br /> ) ENGINE=InnoDB DEFAULT CHARSET=gb2312<br /> */</p> <p>$k = new ic37();<br /> $arr = array_unique(array('MAX3232', 'AML8613', 'MT6225A', 'OM8373PS/N3/A', 'PT7313', 'MAX8212ESA', 'TL431', 'S3C2440', 'TMS320F2812PGFA', 'PCM1704', 'AN6717', 'CA3162E', 'CA3161E', 'LM393N', 'DS18B20', 'SHT10', 'AML8613', 'AN6717', 'LM393N', 'CA3161E', 'CA3162E', 'PCM1704', 'STK392-040', 'K1667', 'MAX232', 'STM32F103', 'LM358', 'NE555', '78L05', 'LM324', 'TL431', 'PC817', '7805', 'LM339', 'LM317', '46A-3GRI', 'MODEL', '78L05', '93C46-3GRI', '8050', 'DS18B20', 'TDA2030', 'LM393', '74HC595', '6N137', 'SN75176BDR'));<br /> foreach ($arr as $v) {<br /> $k->go($v);<br /> }<br /> ?></p> <br /> 摘自 Lee.的专栏<br /> </p> <p align="left"><span id="url" itemprop="url">http://www.bkjia.com/PHPjc/478403.html</span><span id="indexUrl" itemprop="indexUrl">www.bkjia.com</span><span id="isOriginal" itemprop="isOriginal">true</span><span id="isBasedOnUrl" itemprop="isBasedOnUrl">http://www.bkjia.com/PHPjc/478403.html</span><span id="genre" itemprop="genre">TechArticle</span><span id="description" itemprop="description">?php /** * 抓取中国 IC 网(http://www.ic37.com)供应商主程序 * author Lee. * Last modify $Date: 2012-2-9 9:32:21 $ * 注:本程序按照编码 GB2312 执行,因为中...</span></p> </div> <div class=""> <ul class="m-news-opt fix"> <li class="opt-item"> <a href='/PHPjiqiao-165073.html' target='_blank'><p>< 上一篇</p><p class="ellipsis">php无限分类(非递归)_PHP教程</p></a> </li> <li class="opt-item ta-r"> <a href='/PHPjiqiao-165075.html' target='_blank'><p>下一篇 ></p><p class="ellipsis">非常实用的10个PHP高级应用技巧_PHP教程</p></a> </li> </ul> </div> </div> </div> <div class="g-title fix"> <h2 class="title-txt">人气教程排行</h2> </div> <div class="m-rank u-dashed mb40"> <ul> <li class="rank-item"> <a href="/PHPjiqiao-379253.html" title='php如何获取跳转前的url' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">174次</span> <span class="g-sort-num top">1</span> php如何获取跳转前的url </a> </li> <li class="rank-item"> <a href="/PHPjiqiao-379019.html" title='php格林威治时间转换成当前时间的方法' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">174次</span> <span class="g-sort-num second">2</span> php格林威治时间转换成当前时间的方法 </a> </li> <li class="rank-item"> <a href="/PHPjiqiao-366629.html" title='为什么php不能做大型系统?' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">174次</span> <span class="g-sort-num third">3</span> 为什么php不能做大型系统? </a> </li> <li class="rank-item"> <a href="/PHPjiqiao-207623.html" title='range函数怎么用' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">174次</span> <span class="g-sort-num ">4</span> range函数怎么用 </a> </li> <li class="rank-item"> <a href="/PHPjiqiao-162433.html" title='php中计算页面加载时间几种方法总结_PHP教程' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">174次</span> <span class="g-sort-num ">5</span> php中计算页面加载时间几种方法总结_PHP教程 </a> </li> <li class="rank-item"> <a href="/PHPjiqiao-140221.html" title='求帮助,关于paypal支付返回值修改订单状态' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">174次</span> <span class="g-sort-num ">6</span> 求帮助,关于paypal支付返回值修改订单状态 </a> </li> <li class="rank-item"> <a href="/PHPjiqiao-103588.html" title='typecho怎么配置文章内容页?' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">174次</span> <span class="g-sort-num ">7</span> typecho怎么配置文章内容页? </a> </li> <li class="rank-item"> <a href="/PHPjiqiao-99213.html" title='PhpStorm左侧structure不显示文件的方法列表是这么回事?' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">174次</span> <span class="g-sort-num ">8</span> PhpStorm左侧structure不显示文件的方法列表是这么回事? </a> </li> <li class="rank-item"> <a href="/PHPjiqiao-92208.html" title='查看PHP的环境变量_PHP' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">174次</span> <span class="g-sort-num ">9</span> 查看PHP的环境变量_PHP </a> </li> <li class="rank-item"> <a href="/PHPjiqiao-170.html" title='PHP Primary script unknown 解决方法总结' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">174次</span> <span class="g-sort-num ">10</span> PHP Primary script unknown 解决方法总结 </a> </li> <li class="rank-item"> <a href="/PHPjiqiao-148.html" title='php的命名空间与自动加载实现方法' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">174次</span> <span class="g-sort-num ">11</span> php的命名空间与自动加载实现方法 </a> </li> <li class="rank-item"> <a href="/PHPjiqiao-133.html" title='解决laravel 出现ajax请求419(unknown status)的问题' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">174次</span> <span class="g-sort-num ">12</span> 解决laravel 出现ajax请求419(unknown status)的问题 </a> </li> <li class="rank-item"> <a href="/PHPjiqiao-462817.html" title='php 如何删除mysql记录' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">173次</span> <span class="g-sort-num ">13</span> php 如何删除mysql记录 </a> </li> <li class="rank-item"> <a href="/PHPjiqiao-388448.html" title='PHP如何替换数组中的指定元素' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">173次</span> <span class="g-sort-num ">14</span> PHP如何替换数组中的指定元素 </a> </li> <li class="rank-item"> <a href="/PHPjiqiao-124270.html" title='怎么去除字符串中非汉字、非字母、非数字的字符' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">173次</span> <span class="g-sort-num ">15</span> 怎么去除字符串中非汉字、非字母、非数字的字符 </a> </li> <li class="rank-item"> <a href="/PHPjiqiao-112291.html" title='mysql如何一次执行多条SQL语句' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">173次</span> <span class="g-sort-num ">16</span> mysql如何一次执行多条SQL语句 </a> </li> <li class="rank-item"> <a href="/PHPjiqiao-110669.html" title='修改header里面的Connection为close解决方法' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">173次</span> <span class="g-sort-num ">17</span> 修改header里面的Connection为close解决方法 </a> </li> <li class="rank-item"> <a href="/PHPjiqiao-153.html" title='PHP基于session.upload_progress 实现文件上传进度显示功能详解' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">173次</span> <span class="g-sort-num ">18</span> PHP基于session.upload_progress 实现文件上传进度显示功能详解 </a> </li> <li class="rank-item"> <a href="/PHPjiqiao-125.html" title='php5.6.x到php7.0.x特性小结' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">173次</span> <span class="g-sort-num ">19</span> php5.6.x到php7.0.x特性小结 </a> </li> <li class="rank-item"> <a href="/PHPjiqiao-378118.html" title='php为什么会出现504错误' class="item-name ellipsis" target="_blank"> <span class="g-art-count fr">172次</span> <span class="g-sort-num ">20</span> php为什么会出现504错误 </a> </li> </ul> </div> </div> </div> <!-- / 教程内容页 --> </div> </div> <!-- 页尾 --> <div class="footer"> 本站所有资源全部来源于网络,若本站发布的内容侵害到您的隐私或者利益,请联系我们删除!</div> <!-- / 页尾 --> <script type="text/javascript" src="/kan/js/read.js"></script> <div style="display:none"> <div class="login-box" id="login-dialog"> <div class="login-top"><a class="current" rel="nofollow" id="login1" onclick="setTab('login',1,2);" >登录</a></div> <div class="login-form" id="nav-signin"> <!-- <div class="login-ico"><a rel="nofollow" class="qq" id="qqlogin" target="_blank" href="/user-center-qqlogin.html"> QQ </a></div> --> <div class="login-box-form" id="con_login_1"> <form id="loginform" action="/user-center-login.html" method="post" onsubmit="return false;"> <p class="int-text"> <input class="email" id="username" name="username" type="text" value="用户名或Email" onfocus="if(this.value=='用户名或Email'){this.value='';}" onblur="if(this.value==''){this.value='用户名或Email';};" ></p> <p class="int-text"> <input class="password1" type="password" id="password" name="password" value="******" onBlur="if(this.value=='') this.value='******';" onFocus="if(this.value=='******') this.value='';" > </p> <p class="int-info"> <label class="ui-label"> </label> <label for="agreement" class="ui-label-checkbox"> <input type="checkbox" value="" name="cookietime" id="cookietime" checked="checked" value="2592000"> <input type="hidden" name="notforward" id="notforward" value="1"> <input type="hidden" name="dosubmit" id="dosubmit" value="1">记住我的登录 </label> <a rel="nofollow" class="aright" href="/user-center-forgetpwd.html" target="_blank"> 忘记密码? </a></p> <p class="int-btn"><a rel="nofollow" id="loginbt" class="loginbtn"><span>登录</span></a></p> </form> </div> <form id="regform" action="/user-center-reg.html" method="post"> <div class="login-reg" style="display: none;" id="con_login_2"> <input type="hidden" name="t" id="t"/> <p class="int-text"> <input id="email" name="email" type="text" value="Email" onfocus="if(this.value=='Email'){this.value='';}" onblur="if(this.value==''){this.value='Email';};"></p> <p class="int-text"> <input id="uname" name="username" type="text" value="用户名或昵称" onfocus="if(this.value=='用户名或昵称'){this.value='';}" onblur="if(this.value==''){this.value='用户名或昵称';};"></p> <p class="int-text"> <input type="password" id="pwd" name="password" value="******" onBlur="if(this.value=='') this.value='******';" onFocus="if(this.value=='******') this.value='';"> </p> <p class="int-text1"><span class="inputbox"> <input id="validate" name="validate" type="text" value="验证码" onfocus="if(this.value=='验证码'){this.value='';}" onblur="if(this.value==''){this.value='验证码';};"> </span><span class="yzm-img"><img src="/user-checkcode-index" alt="看不清楚换一张" id="indexlogin"></p> <p class="int-info"> <label> <input value="" name="agreement" id="agreement" CHECKED="checked" type="checkbox"> 我已阅读<a rel="nofollow" href="/user-center-agreement.html">用户协议</a>及<a rel="nofollow" href="/user-center-agreement.html">版权声明</a></label> </p> <p class="int-btn"><input type="hidden" name="dosubmit"/> <a rel="nofollow" class="loginbtn" id="register"><span>注册</span></a></p> </div> </form> </div> </div> </div> </div> <script type="text/javascript" src="/kan/js/foot_js.js"></script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?6dc1c3c5281cf70f49bc0bc860ec24f2"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script type="text/javascript" src="/layui/layui.js"></script> <script> layui.use('code', function() { layui.code({ elem: 'pre', //默认值为.layui-code about: false, skin: 'notepad', title: 'php怎么实现数据库验证跳转代码块', encode: true //是否转义html标签。默认不开启 }); }); </script> </body> </html>