ホームページ >バックエンド開発 >PHPチュートリアル >「グローバルIC調達ネットワーク」サプライヤープログラムをキャプチャ_PHPチュートリアル

「グローバルIC調達ネットワーク」サプライヤープログラムをキャプチャ_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:48:51903ブラウズ

/**
* 「グローバル IC 調達ネットワーク (http://www.qic.com.cn/)」サプライヤー メイン プログラムを取得します
*著者リー
* 最終変更 $Date: 2012-2-7 09:35:21 $
*/
require_once './config.inc.php'; 
クラスクイック{
    プライベート $startId; 
    プライベート $endId; 
     
    パブリック関数 __construct() {
        $this->startId = 27688; 
        $this->endId = 55185; 
    }
     
    パブリック関数 go() {
        for ($i=$this->startId; $i<=$this->endId; $i++) {
            $infoArr = $this->getInfoByUrl($this->getUrl($i)); 
            if (emptyempty($infoArr['company'])) 続行; 
            $m = 新しいモデル(); 
            if ($m->isExists('qic', "company='{$infoArr['company']}'")) {
                echo 'データは存在します!!';続く; 
            } その他 {
                if ($this->addInfoInDB($m, $infoArr)) {
                    echo '追加成功!!'; 
                } その他 {
                    echo '追加に失敗しました!!'; 
                }
            }
        }
    }
     
    /**
* データベースにデータを追加します
* @param オブジェクト $m
* @param 配列 $infoArr
* @return 番号
​​*/
    プライベート関数 addInfoInDB($m ,$infoArr) {
        $num = null; 
        $num = $m->insert('qic', array('会社', '個人', '電話', '携帯電話', 'FAX', 'qq', 'msn', '電子メール', '住所', 'website', 'shopUrl'), array($infoArr['company'], $infoArr['person'], $infoArr['phone'], $infoArr['mobile'], $infoArr['fax ']、$infoArr['qq']、$infoArr['msn']、$infoArr['メール']、$infoArr['アドレス']、$infoArr['ウェブサイト']、$infoArr['shopUrl'] )); 
        $num を返します。 
    }
     
    /**
* サプライヤーの住所に基づいて情報を取得します
* @param string $re
* @return ArrayObject
​​*/
    プライベート関数 getInfoByUrl($url) {
        $re = file_get_contents($url); 
        preg_match_all('/

(.*)
/Usi', $re, $companyArr); 
        preg_match_all('/
  • s*联系人:(.*)
  • /Usi', $re, $personArr); 
            preg_match_all('/

  • s*電報:(.*)
  • /Usi', $re, $phoneArr); 
            preg_match_all('/
  • s*手机:(.*)
  • /Usi', $re, $mobileArr); 
            preg_match_all('/
  • s*传 真:(.*)
  • /Usi', $re, $faxArr); 
            preg_match_all('/
  • s*QQ:(.*)
  • /Usi', $re, $qqArr); 
            preg_match_all('/
  • s*MSN:(.*)
  • /Usi', $re, $msnArr); 
            preg_match_all('/
  • s*邮箱:(.*)
  • /Usi', $re, $emailArr); 
            preg_match_all('/公司地址:(.*)/Usi', $re, $addressArr); 
            preg_match_all('/公司网址:(.*)/Usi', $re, $websiteArr); 
            $infoArr = array(
                'company'=>$this->formatString($companyArr[1][0]),
                'person'=>$this->formatString($personArr[1][0]),
                'phone'=>$this->formatString($phoneArr[1][0]),
                'mobile'=>$this->formatString($mobileArr[1][0]),
                'fax'=>$this->formatString($faxArr[1][0]),
                'qq'=>$this->formatString($qqArr[1][0], 'qm'),
                'msn'=>$this->formatString($msnArr[1][0], 'qm'),
                'email'=>$this->formatString($emailArr[1][0]),
                'address'=>$this->formatString($addressArr[1][0]),
                'website'=>$this->formatString($websiteArr[1][0], 'a'),
                'shopUrl'=>$url
            ); 
            $infoArr を返します。 
        }
         
        /**
    * ページのコンテンツを取得します
    * @param string $url
    * @戻り文字列
    ​​*/
        プライベート関数 getContent($url) {
            $re = file_get_contents($url); 
            $re を返します。  
        }
         
        /**
    * フォーマット文字列
    * @param 文字列 $str
    * @param string $type タイプ
    * @戻り文字列
    ​​*/
        プライベート関数 formatString($str, $type='default') {
            $str = トリム($str); 
            スイッチ ($type) {
                ケース「デフォルト」:
                    空の空($str)を返しますか? '' : $str;  
                    壊す; 
                case 'qm': # 处理QQ
                    if (emptyempty($str)) は ''; を返します。 
                    preg_match_all('/'(.+)'/si', $str, $arr); 
                    トリムを返します($arr[1][0]); 
                    壊す; 
                ケース「a」:
                    $str = preg_replace('/(.+)/', '1', $str); 
                    $str を返します。 
                    壊す; 
                デフォルト:
                    戻る ''; 
                    壊す; 
            }
        }
         
        /**
    * サプライヤーページのアドレスを取得 www.2cto.com
    * @param int $shopId
    * @戻り文字列
    ​​*/
        プライベート関数 getUrl($shopId) {
            "http://www.qic.com.cn/specialstore/tsh_{$shopId}.html" を返します。  
        }
         
    }
     
    /*
     * 表结构
     テーブル `qic` を作成 (
        `id` mediaint(8) unsigned NOT NULL auto_increment,
        `会社` varchar(500) NOT NULL,
        `person` varchar(500) NOT NULL,
        `phone` varchar(300) NOT NULL,
        `mobile` varchar(300) NOT NULL,
        `fax` varchar(300) NOT NULL,
        `qq` varchar(300) NOT NULL,
        `msn` varchar(500) NOT NULL,
        `email` varchar(500) NOT NULL,
        `アドレス` varchar(500) NOT NULL,
        `ウェブサイト` varchar(500) NOT NULL,
        `shopUrl` varchar(200) NOT NULL,
        主キー (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
     * */
     
    $q = 新しい qic(); 
    $q->go(); 
    ?> 

    摘自 Lee.的专栏

    www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478402.html技術記事 ?php /*** グローバル IC 調達ネットワーク (http://www.qic.com.cn/) のサプライヤー メイン プログラムをキャプチャ * 著者 Lee * 最終変更 $Date: 2012-2-7 09:35:21 $*/ require_once ./config.inc.php;クラスの気...
    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。