¿ìËÙÒµÎñͨµÀ

cURL¿âµÄÇ¿´ó¹¦ÄܺÍÁé»îµÄÀ©Õ¹ÐÔ

×÷Õß ØýÃû¼¼Êõ À´Ô´ NET±à³Ì ä¯ÀÀ ·¢²¼Ê±¼ä 2012-05-22

  • Ô­ÎÄ£º»ùÓÚPHPµÄcURL¿ìËÙÈëÃÅ
  • Ó¢ÎÄÔ­ÎÄ£ºhttp://net.tutsplus.com/tutorial ... for-mastering-curl/
  • Ô­ÎÄ×÷ÕߣºBurak Guzel

cURL ÊÇÒ»¸öÀûÓÃURLÓï·¨¹æ¶¨À´´«ÊäÎļþºÍÊý¾ÝµÄ¹¤¾ß£¬Ö§³ÖºÜ¶àЭÒ飬ÈçHTTP¡¢FTP¡¢TELNETµÈ¡£×îˬµÄÊÇ£¬PHPÒ²Ö§³Ö cURL ¿â¡£±¾ÎĽ«½éÉÜ cURL µÄһЩ¸ß¼¶ÌØÐÔ£¬ÒÔ¼°ÔÚPHPÖÐÈçºÎÔËÓÃËü¡£

ΪʲôҪÓà cURL?

Êǵģ¬ÎÒÃÇ¿ÉÒÔͨ¹ýÆäËû°ì·¨»ñÈ¡ÍøÒ³ÄÚÈÝ¡£´ó¶àÊýʱºò£¬ÎÒÒòΪÏë͵ÀÁ£¬¶¼Ö±½ÓÓüòµ¥µÄPHPº¯Êý£º

$content = file_get_contents("http://www.nettuts.com");
// or
$lines = file("http://www.nettuts.com");
// or
readfile(http://www.nettuts.com);

²»¹ý£¬ÕâÖÖ×ö·¨È±·¦Áé»îÐÔºÍÓÐЧµÄ´íÎó´¦Àí¡£¶øÇÒ£¬ÄãÒ²²»ÄÜÓÃËüÍê³ÉһЩ¸ßÄѶÈÈÎÎñ——±ÈÈç´¦Àícoockies¡¢ÑéÖ¤¡¢±íµ¥Ìá½»¡¢ÎļþÉÏ´«µÈµÈ¡£

ÒýÓãº
cURL ÊÇÒ»ÖÖ¹¦ÄÜÇ¿´óµÄ¿â£¬Ö§³ÖºÜ¶à²»Í¬µÄЭÒ顢ѡÏÄÜÌṩ URL ÇëÇóÏà¹ØµÄ¸÷ÖÖϸ½ÚÐÅÏ¢¡£

»ù±¾½á¹¹

ÔÚѧϰ¸üΪ¸´ÔӵŦÄÜ֮ǰ£¬ÏÈÀ´¿´Ò»ÏÂÔÚPHPÖн¨Á¢cURLÇëÇóµÄ»ù±¾²½Ö裺

  1. ³õʼ»¯
  2. ÉèÖñäÁ¿
  3. Ö´Ðв¢»ñÈ¡½á¹û
  4. ÊÍ·ÅcURL¾ä±ú

// 1. ³õʼ»¯
$ch = curl_init();
// 2. ÉèÖÃÑ¡Ï°üÀ¨URL
curl_setopt($ch, CURLOPT_URL, "http://www.nettuts.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
// 3. Ö´Ðв¢»ñÈ¡HTMLÎĵµÄÚÈÝ
$output = curl_exec($ch);
// 4. ÊÍ·Åcurl¾ä±ú
curl_close($ch);

µÚ¶þ²½£¨Ò²¾ÍÊÇ curl_setopt() £©×îΪÖØÒª£¬Ò»ÇÐÐþÃî¾ùÔÚ´Ë¡£ÓÐÒ»³¤´®cURL²ÎÊý¿É¹©ÉèÖã¬ËüÃÇÄÜÖ¸¶¨URLÇëÇóµÄ¸÷¸öϸ½Ú¡£ÒªÒ»´ÎÐÔÈ«²¿¿´Íê²¢Àí½â¿ÉÄܱȽÏÀ§ÄÑ£¬ËùÒÔ½ñÌìÎÒÃÇÖ»ÊÔÒ»ÏÂÄÇЩ¸ü³£ÓÃÒ²¸üÓÐÓõÄÑ¡Ïî¡£

¼ì²é´íÎó

Äã¿ÉÒÔ¼ÓÒ»¶Î¼ì²é´íÎóµÄÓï¾ä£¨ËäÈ»Õâ²¢²»ÊDZØÐèµÄ£©£º

// ...
$output = curl_exec($ch);
if ($output === FALSE) {
    echo "cURL Error: " . curl_error($ch);
}
// ...

Çë×¢Ò⣬±È½ÏµÄʱºòÎÒÃÇÓõÄÊÇ“=== FALSE”£¬¶ø·Ç“== FALSE”¡£ÒòΪÎÒÃǵÃÇø·Ö ¿ÕÊä³ö ºÍ ²¼¶ûÖµFALSE£¬ºóÕß²ÅÊÇÕæÕýµÄ´íÎó¡£

»ñÈ¡ÐÅÏ¢

ÕâÊÇÁíÒ»¸ö¿ÉÑ¡µÄÉèÖÃÏÄܹ»ÔÚcURLÖ´Ðкó»ñÈ¡ÕâÒ»ÇëÇóµÄÓйØÐÅÏ¢£º

// ...
curl_exec($ch);
$info = curl_getinfo($ch);
echo ''»ñÈ¡''. $info[''url''] . ''ºÄʱ''. $info[''total_time''] . ''Ãë'';
// ...

·µ»ØµÄÊý×éÖаüÀ¨ÁËÒÔÏÂÐÅÏ¢£º

  • “url” //×ÊÔ´ÍøÂçµØÖ·
  • “content_type” //ÄÚÈݱàÂë
  • “http_code” //HTTP״̬Âë
  • “header_size” //headerµÄ´óС
  • “request_size” //ÇëÇóµÄ´óС
  • “filetime” //Îļþ´´½¨Ê±¼ä
  • “ssl_verify_result” //SSLÑéÖ¤½á¹û
  • “redirect_count” //Ìøת¼¼Êõ  
  • “total_time” //×ܺÄʱ
  • “namelookup_time” //DNS²éѯºÄʱ
  • “connect_time” //µÈ´ýÁ¬½ÓºÄʱ
  • “pretransfer_time” //´«ÊäÇ°×¼±¸ºÄʱ
  • “size_upload” //ÉÏ´«Êý¾ÝµÄ´óС
  • “size_download” //ÏÂÔØÊý¾ÝµÄ´óС
  • “speed_download” //ÏÂÔØËÙ¶È
  • “speed_upload” //ÉÏ´«ËÙ¶È
  • “download_content_length”//ÏÂÔØÄÚÈݵij¤¶È
  • “upload_content_length” //ÉÏ´«ÄÚÈݵij¤¶È  
  • “starttransfer_time” //¿ªÊ¼´«ÊäµÄʱ¼ä
  • “redirect_time”//Öض¨ÏòºÄʱ

»ùÓÚä¯ÀÀÆ÷µÄÖض¨Ïò

ÔÚµÚÒ»¸öÀý×ÓÖУ¬ÎÒÃǽ«Ìṩһ¶ÎÓÃÓÚÕì²â·þÎñÆ÷ÊÇ·ñÓлùÓÚä¯ÀÀÆ÷µÄÖض¨ÏòµÄ´úÂë¡£ÀýÈ磬ÓÐЩÍøÕ¾»á¸ù¾ÝÊÇ·ñÊÇÊÖ»úä¯ÀÀÆ÷ÉõÖÁÓû§À´×ÔÄĸö¹ú¼ÒÀ´Öض¨ÏòÍøÒ³¡£

ÎÒÃÇÀûÓà CURLOPT_HTTPHEADER Ñ¡ÏîÀ´É趨ÎÒÃÇ·¢ËͳöµÄHTTPÇëÇóÍ·ÐÅÏ¢£¨http headers£©£¬°üÀ¨user agentÐÅÏ¢ºÍĬÈÏÓïÑÔ¡£È»ºóÎÒÃÇÀ´¿´¿´ÕâЩÌض¨ÍøÕ¾ÊÇ·ñ»á°ÑÎÒÃÇÖض¨Ïòµ½²»Í¬µÄURL¡£

// ²âÊÔÓõÄURL
$urls = array(
    "http://www.cnn.com",
    "http://www.mozilla.com",
    "http://www.facebook.com"
);
// ²âÊÔÓõÄä¯ÀÀÆ÷ÐÅÏ¢
$browsers = array(
    "standard" => array (
        "user_agent" => "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729)",
        "language" => "en-us,en;q=0.5"
        ),
    "iphone" => array (
        "user_agent" => "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A537a Safari/419.3",
        "language" => "en"
        ),
    "french" => array (
        "user_agent" => "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB6; .NET CLR 2.0.50727)",
        "language" => "fr,fr-FR;q=0.5"
        )
);
foreach ($urls as $url) {
    echo "URL: $url\n";
    foreach ($browsers as $test_name => $browser) {
        $ch = curl_init();
        // ÉèÖÃ url
        curl_setopt($ch, CURLOPT_URL, $url);
        // ÉèÖÃä¯ÀÀÆ÷µÄÌض¨header
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                "User-Agent: {$browser[''user_agent'']}",
                "Accept-Language: {$browser[''language'']}"
            ));
        // Ò³ÃæÄÚÈÝÎÒÃDz¢²»ÐèÒª
        curl_setopt($ch, CURLOPT_NOBODY, 1);
        // Ö»Ðè·µ»ØHTTP header
        curl_setopt($ch, CURLOPT_HEADER, 1);
        // ·µ»Ø½á¹û£¬¶ø²»ÊÇÊä³öËü
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($ch);
        curl_close($ch);
        // ÓÐÖض¨ÏòµÄHTTPÍ·ÐÅÏ¢Âð?
        if (preg_match("!Location: (.*)!", $output, $matches)) {
            echo "$test_name: redirects to $matches[1]\n";
        } else {
            echo "$test_name: no redirection\n";
        }
    }
    echo "\n\n";
}

Ê×ÏÈ£¬ÎÒÃǽ¨Á¢Ò»×éÐèÒª²âÊÔµÄURL£¬½Ó×ÅÖ¸¶¨Ò»×éÐèÒª²âÊÔµÄä¯ÀÀÆ÷ÐÅÏ¢¡£×îºóͨ¹ýÑ­»·²âÊÔ¸÷ÖÖURLºÍä¯ÀÀÆ÷Æ¥Åä¿ÉÄܲúÉúµÄÇé¿ö¡£

ÒòΪÎÒÃÇÖ¸¶¨ÁËcURLÑ¡ÏËùÒÔ·µ»ØµÄÊä³öÄÚÈÝÔòÖ»°üÀ¨HTTPÍ·ÐÅÏ¢£¨±»´æ·ÅÓÚ $output ÖУ©¡£ÀûÓÃÒ»¸ö¼òµ¥µÄÕýÔò£¬ÎÒÃǼì²éÕâ¸öÍ·ÐÅÏ¢ÖÐÊÇ·ñ°üº¬ÁË“Location:”×ÖÑù¡£

ÔËÐÐÕâ¶Î´úÂëÓ¦¸Ã»á·µ»ØÈçϽá¹û£º

ÓÃPOST·½·¨·¢ËÍÊý¾Ý

µ±·¢ÆðGETÇëÇóʱ£¬Êý¾Ý¿ÉÒÔͨ¹ý“²éѯ×Ö´®”£¨query string£©´«µÝ¸øÒ»¸öURL¡£ÀýÈ磬ÔÚgoogleÖÐËÑË÷ʱ£¬ËÑË÷¹Ø¼ü¼´ÎªURLµÄ²éѯ×Ö´®µÄÒ»²¿·Ö£º

http://www.google.com/search?q=nettuts

ÕâÖÖÇé¿öÏÂÄã¿ÉÄܲ¢²»ÐèÒªcURLÀ´Ä£Äâ¡£°ÑÕâ¸öURL¶ª¸ø“file_get_contents()”¾ÍÄܵõ½Ïàͬ½á¹û¡£

²»¹ýÓÐһЩHTML±íµ¥ÊÇÓÃPOST·½·¨Ìá½»µÄ¡£ÕâÖÖ±íµ¥Ìύʱ£¬Êý¾ÝÊÇͨ¹ý HTTPÇëÇóÌ壨request body£© ·¢ËÍ£¬¶ø²»ÊDzéѯ×Ö´®¡£ÀýÈ磬µ±Ê¹ÓÃCodeIgniterÂÛ̳µÄ±íµ¥£¬ÎÞÂÛÄãÊäÈëʲô¹Ø¼ü×Ö£¬×ÜÊDZ»POSTµ½ÈçÏÂÒ³Ã棺

http://codeigniter.com/forums/do_search/

Äã¿ÉÒÔÓÃPHP½Å±¾À´Ä£ÄâÕâÖÖURLÇëÇó¡£Ê×ÏÈ£¬Ð½¨Ò»¸ö¿ÉÒÔ½ÓÊܲ¢ÏÔʾPOSTÊý¾ÝµÄÎļþ£¬ÎÒÃǸøËüÃüÃûΪpost_output.php£º

print_r( cURL¿âµÄÇ¿´ó¹¦ÄܺÍÁé»îµÄÀ©Õ¹ÐÔ - ÁèÖڿƼ¼

¿ìËÙÒµÎñͨµÀ

cURL¿âµÄÇ¿´ó¹¦ÄܺÍÁé»îµÄÀ©Õ¹ÐÔ

×÷Õß ØýÃû¼¼Êõ À´Ô´ NET±à³Ì ä¯ÀÀ ·¢²¼Ê±¼ä 2012-05-22
content

ÁèÖڿƼ¼×¨ÒµÌṩ·þÎñÆ÷×âÓᢷþÎñÆ÷Íйܡ¢ÆóÒµÓʾ֡¢ÐéÄâÖ÷»úµÈ·þÎñ£¬¹«Ë¾ÍøÕ¾£ºhttp://www.lingzhong.cn ΪÁ˸ø¹ã´ó¿Í»§Á˽â¸ü¶àµÄ¼¼ÊõÐÅÏ¢£¬±¾¼¼ÊõÎÄÕÂÊÕ¼¯À´Ô´ÓÚÍøÂç,ÁèÖڿƼ¼×ðÖØÎÄÕÂ×÷ÕߵİæȨ£¬Èç¹ûÓÐÉæ¼°ÄãµÄ°æȨÓбØҪɾ³ýÄãµÄÎÄÕ£¬ÇëºÍÎÒÃÇÁªÏµ¡£ÒÔÉÏÐÅÏ¢ÓëÎÄÕÂÕýÎÄÊDz»¿É·Ö¸îµÄÒ»²¿·Ö,Èç¹ûÄúҪתÔر¾ÎÄÕÂ,Çë±£ÁôÒÔÉÏÐÅÏ¢£¬Ð»Ð»!

·ÖÏíµ½£º ¸ü¶à

Copyright ©1999-2011 ÏÃÃÅÁèÖڿƼ¼ÓÐÏÞ¹«Ë¾ ÏÃÃÅÓÅͨ»¥Áª¿Æ¼¼¿ª·¢ÓÐÏÞ¹«Ë¾ All rights reserved

µØÖ·(ADD)£ºÏÃÃÅÈí¼þÔ°¶þÆÚÍûº£Â·63ºÅ701E£¨¶«ÄÏÈÚͨÅÔ£© Óʱà(ZIP)£º361008

µç»°£º0592-5908028 ´«Õ棺0592-5908039 ×ÉѯÐÅÏ䣺web@lingzhong.cn ×ÉѯOICQ£º173723134

¡¶ÖлªÈËÃñ¹²ºÍ¹úÔöÖµµçÐÅÒµÎñ¾­ÓªÐí¿ÉÖ¤¡·ÃöB2-20100024  ICP±¸°¸:ÃöICP±¸05037997ºÅ

POST);

½ÓÏÂÀ´£¬Ð´Ò»¶ÎPHP½Å±¾À´Ö´ÐÐcURLÇëÇó£º

$url = "http://localhost/post_output.php";
$post_data = array (
    "foo" => "bar",
    "query" => "Nettuts",
    "action" => "Submit"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// ÎÒÃÇÔÚPOSTÊý¾ÝŶ£¡
curl_setopt($ch, CURLOPT_POST, 1);
// °ÑpostµÄ±äÁ¿¼ÓÉÏ
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);
echo $output;

Ö´ÐдúÂëºóÓ¦¸Ã»áµÃµ½ÒÔϽá¹û£º

Õâ¶Î½Å±¾·¢ËÍÒ»¸öPOSTÇëÇó¸ø post_output.php £¬Õâ¸öÒ³Ãæ cURL¿âµÄÇ¿´ó¹¦ÄܺÍÁé»îµÄÀ©Õ¹ÐÔ - ÁèÖڿƼ¼

¿ìËÙÒµÎñͨµÀ

cURL¿âµÄÇ¿´ó¹¦ÄܺÍÁé»îµÄÀ©Õ¹ÐÔ

×÷Õß ØýÃû¼¼Êõ À´Ô´ NET±à³Ì ä¯ÀÀ ·¢²¼Ê±¼ä 2012-05-22
content

ÁèÖڿƼ¼×¨ÒµÌṩ·þÎñÆ÷×âÓᢷþÎñÆ÷Íйܡ¢ÆóÒµÓʾ֡¢ÐéÄâÖ÷»úµÈ·þÎñ£¬¹«Ë¾ÍøÕ¾£ºhttp://www.lingzhong.cn ΪÁ˸ø¹ã´ó¿Í»§Á˽â¸ü¶àµÄ¼¼ÊõÐÅÏ¢£¬±¾¼¼ÊõÎÄÕÂÊÕ¼¯À´Ô´ÓÚÍøÂç,ÁèÖڿƼ¼×ðÖØÎÄÕÂ×÷ÕߵİæȨ£¬Èç¹ûÓÐÉæ¼°ÄãµÄ°æȨÓбØҪɾ³ýÄãµÄÎÄÕ£¬ÇëºÍÎÒÃÇÁªÏµ¡£ÒÔÉÏÐÅÏ¢ÓëÎÄÕÂÕýÎÄÊDz»¿É·Ö¸îµÄÒ»²¿·Ö,Èç¹ûÄúҪתÔر¾ÎÄÕÂ,Çë±£ÁôÒÔÉÏÐÅÏ¢£¬Ð»Ð»!

·ÖÏíµ½£º ¸ü¶à

Copyright ©1999-2011 ÏÃÃÅÁèÖڿƼ¼ÓÐÏÞ¹«Ë¾ ÏÃÃÅÓÅͨ»¥Áª¿Æ¼¼¿ª·¢ÓÐÏÞ¹«Ë¾ All rights reserved

µØÖ·(ADD)£ºÏÃÃÅÈí¼þÔ°¶þÆÚÍûº£Â·63ºÅ701E£¨¶«ÄÏÈÚͨÅÔ£© Óʱà(ZIP)£º361008

µç»°£º0592-5908028 ´«Õ棺0592-5908039 ×ÉѯÐÅÏ䣺web@lingzhong.cn ×ÉѯOICQ£º173723134

¡¶ÖлªÈËÃñ¹²ºÍ¹úÔöÖµµçÐÅÒµÎñ¾­ÓªÐí¿ÉÖ¤¡·ÃöB2-20100024  ICP±¸°¸:ÃöICP±¸05037997ºÅ

POST ±äÁ¿²¢·µ»Ø£¬ÎÒÃÇÀûÓÃcURL²¶×½ÁËÕâ¸öÊä³ö¡£

ÎļþÉÏ´«

ÉÏ´«ÎļþºÍÇ°ÃæµÄPOSTÊ®·ÖÏàËÆ¡£ÒòΪËùÓеÄÎļþÉÏ´«±íµ¥¶¼ÊÇͨ¹ýPOST·½·¨Ìá½»µÄ¡£

Ê×ÏÈн¨Ò»¸ö½ÓÊÕÎļþµÄÒ³Ã棬ÃüÃûΪ upload_output.php£º

print_r( cURL¿âµÄÇ¿´ó¹¦ÄܺÍÁé»îµÄÀ©Õ¹ÐÔ - ÁèÖڿƼ¼

¿ìËÙÒµÎñͨµÀ

cURL¿âµÄÇ¿´ó¹¦ÄܺÍÁé»îµÄÀ©Õ¹ÐÔ

×÷Õß ØýÃû¼¼Êõ À´Ô´ NET±à³Ì ä¯ÀÀ ·¢²¼Ê±¼ä 2012-05-22
content

ÁèÖڿƼ¼×¨ÒµÌṩ·þÎñÆ÷×âÓᢷþÎñÆ÷Íйܡ¢ÆóÒµÓʾ֡¢ÐéÄâÖ÷»úµÈ·þÎñ£¬¹«Ë¾ÍøÕ¾£ºhttp://www.lingzhong.cn ΪÁ˸ø¹ã´ó¿Í»§Á˽â¸ü¶àµÄ¼¼ÊõÐÅÏ¢£¬±¾¼¼ÊõÎÄÕÂÊÕ¼¯À´Ô´ÓÚÍøÂç,ÁèÖڿƼ¼×ðÖØÎÄÕÂ×÷ÕߵİæȨ£¬Èç¹ûÓÐÉæ¼°ÄãµÄ°æȨÓбØҪɾ³ýÄãµÄÎÄÕ£¬ÇëºÍÎÒÃÇÁªÏµ¡£ÒÔÉÏÐÅÏ¢ÓëÎÄÕÂÕýÎÄÊDz»¿É·Ö¸îµÄÒ»²¿·Ö,Èç¹ûÄúҪתÔر¾ÎÄÕÂ,Çë±£ÁôÒÔÉÏÐÅÏ¢£¬Ð»Ð»!

·ÖÏíµ½£º ¸ü¶à

Copyright ©1999-2011 ÏÃÃÅÁèÖڿƼ¼ÓÐÏÞ¹«Ë¾ ÏÃÃÅÓÅͨ»¥Áª¿Æ¼¼¿ª·¢ÓÐÏÞ¹«Ë¾ All rights reserved

µØÖ·(ADD)£ºÏÃÃÅÈí¼þÔ°¶þÆÚÍûº£Â·63ºÅ701E£¨¶«ÄÏÈÚͨÅÔ£© Óʱà(ZIP)£º361008

µç»°£º0592-5908028 ´«Õ棺0592-5908039 ×ÉѯÐÅÏ䣺web@lingzhong.cn ×ÉѯOICQ£º173723134

¡¶ÖлªÈËÃñ¹²ºÍ¹úÔöÖµµçÐÅÒµÎñ¾­ÓªÐí¿ÉÖ¤¡·ÃöB2-20100024  ICP±¸°¸:ÃöICP±¸05037997ºÅ

FILES);

ÒÔÏÂÊÇÕæÕýÖ´ÐÐÎļþÉÏ´«ÈÎÎñµÄ½Å±¾£º

$url = "http://localhost/upload_output.php";
$post_data = array (
    "foo" => "bar",
    // ÒªÉÏ´«µÄ±¾µØÎļþµØÖ·
    "upload" => "@C:/wamp/www/test.zip"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);
echo $output;

Èç¹ûÄãÐèÒªÉÏ´«Ò»¸öÎļþ£¬Ö»ÐèÒª°ÑÎļþ·¾¶ÏñÒ»¸öpost±äÁ¿Ò»Ñù´«¹ýÈ¥£¬²»¹ý¼ÇµÃÔÚÇ°Ãæ¼ÓÉÏ@·ûºÅ¡£Ö´ÐÐÕâ¶Î½Å±¾Ó¦¸Ã»áµÃµ½ÈçÏÂÊä³ö£º

cURLÅú´¦Àí£¨multi cURL£©

cURL»¹ÓÐÒ»¸ö¸ß¼¶ÌØÐÔ——Åú´¦Àí¾ä±ú£¨handle£©¡£ÕâÒ»ÌØÐÔÔÊÐíÄãͬʱ»òÒì²½µØ´ò¿ª¶à¸öURLÁ¬½Ó¡£

ÏÂÃæÊÇÀ´×ÔÀ´×Ôphp.netµÄʾÀý´úÂ룺

// ´´½¨Á½¸öcURL×ÊÔ´
$ch1 = curl_init();
$ch2 = curl_init();
// Ö¸¶¨URLºÍÊʵ±µÄ²ÎÊý
curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);
// ´´½¨cURLÅú´¦Àí¾ä±ú
$mh = curl_multi_init();
// ¼ÓÉÏÇ°ÃæÁ½¸ö×ÊÔ´¾ä±ú
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);
// Ô¤¶¨ÒåÒ»¸ö״̬±äÁ¿
$active = null;
// Ö´ÐÐÅú´¦Àí
do {
    $mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
    if (curl_multi_select($mh) != -1) {
        do {
            $mrc = curl_multi_exec($mh, $active);
        } while ($mrc == CURLM_CALL_MULTI_PERFORM);
    }
}
// ¹Ø±Õ¸÷¸ö¾ä±ú
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

ÕâÀïÒª×öµÄ¾ÍÊÇ´ò¿ª¶à¸öcURL¾ä±ú²¢Ö¸ÅɸøÒ»¸öÅú´¦Àí¾ä±ú¡£È»ºóÄã¾ÍÖ»ÐèÔÚÒ»¸öwhileÑ­»·ÀïµÈËüÖ´ÐÐÍê±Ï¡£

Õâ¸öʾÀýÖÐÓÐÁ½¸öÖ÷Ҫѭ»·¡£µÚÒ»¸ö do-while Ñ­»·Öظ´µ÷Óà curl_multi_exec() ¡£Õâ¸öº¯ÊýÊÇÎÞ¸ô¶Ï£¨non-blocking£©µÄ£¬µ«»á¾¡¿ÉÄÜÉÙµØÖ´ÐС£Ëü·µ»ØÒ»¸ö״ֵ̬£¬Ö»ÒªÕâ¸öÖµµÈÓÚ³£Á¿ CURLM_CALL_MULTI_PERFORM £¬¾Í´ú±í»¹ÓÐһЩ¿Ì²»ÈÝ»ºµÄ¹¤×÷Òª×ö£¨ÀýÈ磬°Ñ¶ÔÓ¦URLµÄhttpÍ·ÐÅÏ¢·¢ËͳöÈ¥£©¡£Ò²¾ÍÊÇ˵£¬ÎÒÃÇÐèÒª²»¶Ïµ÷Óøú¯Êý£¬Ö±µ½·µ»ØÖµ·¢Éú¸Ä±ä¡£

¶ø½ÓÏÂÀ´µÄ while Ñ­»·£¬Ö»ÔÚ $active ±äÁ¿Îª true ʱ¼ÌÐø¡£ÕâÒ»±äÁ¿Ö®Ç°×÷ΪµÚ¶þ¸ö²ÎÊý´«¸øÁË curl_multi_exec() £¬´ú±íÖ»ÒªÅú´¦Àí¾ä±úÖÐÊÇ·ñ»¹ÓлÁ¬½Ó¡£½Ó×Å£¬ÎÒÃǵ÷Óà curl_multi_select() £¬ÔڻÁ¬½Ó£¨ÀýÈç½ÓÊÜ·þÎñÆ÷ÏìÓ¦£©³öÏÖ֮ǰ£¬Ëü¶¼ÊDZ»“ÆÁ±Î”µÄ¡£Õâ¸öº¯Êý³É¹¦Ö´Ðкó£¬ÎÒÃÇÓÖ»á½øÈëÁíÒ»¸ö do-while Ñ­»·£¬¼ÌÐøÏÂÒ»ÌõURL¡£

»¹ÊÇÀ´¿´Ò»¿´Ôõô°ÑÕâÒ»¹¦ÄÜÓõ½Êµ´¦°É£º

WordPress Á¬½Ó¼ì²éÆ÷

ÏëÏóÒ»ÏÂÄãÓÐÒ»¸öÎÄÕÂÊýÄ¿ÅÓ´óµÄ²©¿Í£¬ÕâЩÎÄÕÂÖаüº¬ÁË´óÁ¿ÍⲿÍøÕ¾Á´½Ó¡£Ò»¶Îʱ¼äÖ®ºó£¬ÒòΪÕâÑùÄÇÑùµÄÔ­Òò£¬ÕâЩÁ´½ÓÖÐÏ൱ÊýÁ¿¶¼Ê§Ð§ÁË¡£ÒªÃ´ÊDZ»ºÍгÁË£¬ÒªÃ´ÊÇÕû¸öÕ¾µã¶¼±»¹¦·òÍøÁË...

ÎÒÃÇÏÂÃ潨Á¢Ò»¸ö½Å±¾£¬·ÖÎöËùÓÐÕâЩÁ´½Ó£¬ÕÒ³ö´ò²»¿ª»òÕß404µÄÍøÕ¾/ÍøÒ³£¬²¢Éú³ÉÒ»¸ö±¨¸æ¡£

Çë×¢Ò⣬ÒÔϲ¢²»ÊÇÒ»¸öÕæÕý¿ÉÓõÄWordPress²å¼þ£¬½ö½öÊÇÒ»¶Î¶ÀÁ¢¹¦ÄܵĽű¾¶øÒÑ£¬½ö¹©ÑÝʾ£¬Ð»Ð»¡£

ºÃ£¬¿ªÊ¼°É¡£Ê×ÏÈ£¬´ÓÊý¾Ý¿âÖжÁÈ¡ËùÓÐÕâЩÁ´½Ó£º

// CONFIG
$db_host = ''localhost'';
$db_user = ''root'';
$db_pass = '''';
$db_name = ''wordpress'';
$excluded_domains = array(
    ''localhost'', ''www.mydomain.com'');
$max_connections = 10;
// ³õʼ»¯Ò»Ð©±äÁ¿
$url_list = array();
$working_urls = array();
$dead_urls = array();
$not_found_urls = array();
$active = null;
// Á¬µ½ MySQL
if (!mysql_connect($db_host, $db_user, $db_pass)) {
    die(''Could not connect: '' . mysql_error());
}
if (!mysql_select_db($db_name)) {
    die(''Could not select db: '' . mysql_error());
}
// ÕÒ³öËùÓк¬ÓÐÁ´½ÓµÄÎÄÕÂ
$q = "SELECT post_content FROM wp_posts
    WHERE post_content LIKE ''%href=%''
    AND post_status = ''publish''
    AND post_type = ''post''";
$r = mysql_query($q) or die(mysql_error());
while ($d = mysql_fetch_assoc($r)) {
    // ÓÃÕýÔòÆ¥ÅäÁ´½Ó
    if (preg_match_all("!href=\"(.*?)\"!", $d[''post_content''], $matches)) {
        foreach ($matches[1] as $url) {
            // exclude some domains
            $tmp = parse_url($url);
            if (in_array($tmp[''host''], $excluded_domains)) {
                continue;
            }
            // store the url
            $url_list []= $url;
        }
    }
}
// ÒƳýÖظ´Á´½Ó
$url_list = array_values(array_unique($url_list));
if (!$url_list) {
    die(''No URL to check'');
}

ÎÒÃÇÊ×ÏÈÅäÖúÃÊý¾Ý¿â£¬Ò»ÏµÁÐÒªÅųýµÄÓòÃû£¨$excluded_domains£©£¬ÒÔ¼°×î´ó²¢·¢Á¬½ÓÊý£¨$max_connections£©¡£È»ºó£¬Á¬½ÓÊý¾Ý¿â£¬»ñÈ¡ÎÄÕºͰüº¬µÄÁ´½Ó£¬°ÑËüÃÇÊÕ¼¯µ½Ò»¸öÊý×éÖУ¨$url_list£©¡£

ÏÂÃæµÄ´úÂëÓе㸴ÔÓÁË£¬Òò´ËÎÒ½«Ò»Ð¡²½Ò»Ð¡²½µØÏêϸ½âÊÍ£º

// 1. Åú´¦ÀíÆ÷
$mh = curl_multi_init();
// 2. ¼ÓÈëÐèÅúÁ¿´¦ÀíµÄURL
for ($i = 0; $i < $max_connections; $i++) {
    add_url_to_multi_handle($mh, $url_list);
}
// 3. ³õʼ´¦Àí
do {
    $mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
// 4. Ö÷Ñ­»·
while ($active && $mrc == CURLM_OK) {
    // 5. ÓлÁ¬½Ó
    if (curl_multi_select($mh) != -1) {
        // 6. ¸É»î
        do {
            $mrc = curl_multi_exec($mh, $active);
        } while ($mrc == CURLM_CALL_MULTI_PERFORM);
        // 7. ÓÐÐÅÏ¢·ñ£¿
        if ($mhinfo = curl_multi_info_read($mh)) {
            // ÒâζןÃÁ¬½ÓÕý³£½áÊø
            // 8. ´Ócurl¾ä±ú»ñÈ¡ÐÅÏ¢
            $chinfo = curl_getinfo($mhinfo[''handle'']);
            // 9. ËÀÁ´Ã´£¿
            if (!$chinfo[''http_code'']) {
                $dead_urls []= $chinfo[''url''];
            // 10. 404ÁË?
            } else if ($chinfo[''http_code''] == 404) {
                $not_found_urls []= $chinfo[''url''];
            // 11. »¹ÄÜÓÃ
            } else {
                $wo***ng_urls []= $chinfo[''url''];
            }
            // 12. ÒƳý¾ä±ú
            curl_multi_remove_handle($mh, $mhinfo[''handle'']);
            curl_close($mhinfo[''handle'']);
            // 13. ¼ÓÈëÐÂURL£¬¸É»î
            if (add_url_to_multi_handle($mh, $url_list)) {
                do {
                    $mrc = curl_multi_exec($mh, $active);
                } while ($mrc == CURLM_CALL_MULTI_PERFORM);
            }
        }
    }
}
// 14. ÍêÁË
curl_multi_close($mh);
echo "==Dead URLs==\n";
echo implode("\n",$dead_urls) . "\n\n";
echo "==404 URLs==\n";
echo implode("\n",$not_found_urls) . "\n\n";
echo "==Wo***ng URLs==\n";
echo implode("\n",$wo***ng_urls);
// 15. ÏòÅú´¦ÀíÆ÷Ìí¼Óurl
function add_url_to_multi_handle($mh, $url_list) {
    static $index = 0;
    // Èç¹û»¹Ê£urlûÓÃ
    if ($url_list[$index]) {
        // н¨curl¾ä±ú
        $ch = curl_init();
        // ÅäÖÃurl
        curl_setopt($ch, CURLOPT_URL, $url_list[$index]);
        // ²»ÏëÊä³ö·µ»ØµÄÄÚÈÝ
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        // Öض¨Ïòµ½ÄĶùÎÒÃǾÍÈ¥ÄĶù
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        // ²»ÐèÒªÄÚÈÝÌ壬Äܹ»½ÚÔ¼´ø¿íºÍʱ¼ä
        curl_setopt($ch, CURLOPT_NOBODY, 1);
        // ¼ÓÈëµ½Åú´¦ÀíÆ÷ÖÐ
        curl_multi_add_handle($mh, $ch);
        // ²¦Ò»Ï¼ÆÊýÆ÷£¬Ï´ε÷Óøú¯Êý¾ÍÄÜÌí¼ÓÏÂÒ»¸öurlÁË
        $index++;
        return true;
    } else {
        // ûÓÐеÄURLÐèÒª´¦ÀíÁË
        return false;
    }
}

ÏÂÃæ½âÊÍÒ»ÏÂÒÔÉÏ´úÂë¡£ÁбíµÄÐòºÅ¶ÔÓ¦×Å´úÂë×¢ÊÍÖеÄ˳ÐòÊý×Ö¡£

  1. н¨Ò»¸öÅú´¦ÀíÆ÷¡£Created a multi handle.
  2. ÉÔºóÎÒÃǽ«´´½¨Ò»¸ö°ÑURL¼ÓÈëÅú´¦ÀíÆ÷µÄº¯Êý add_url_to_multi_handle() ¡£Ã¿µ±Õâ¸öº¯Êý±»µ÷Ó㬾ÍÓÐÒ»¸öÐÂurl±»¼ÓÈëÅú´¦ÀíÆ÷¡£Ò»¿ªÊ¼£¬ÎÒÃǸøÅú´¦ÀíÆ÷Ìí¼ÓÁË10¸öURL£¨ÕâÒ»Êý×ÖÓÉ $max_connections Ëù¾ö¶¨£©¡£
  3.   ÔËÐÐ curl_multi_exec()  ½øÐгõʼ»¯¹¤×÷ÊDZØÐëµÄ£¬Ö»ÒªËü·µ»Ø CURLM_CALL_MULTI_PERFORM ¾Í»¹ÓÐÊÂÇéÒª×ö¡£Õâô×öÖ÷ÒªÊÇΪÁË´´½¨Á¬½Ó£¬Ëü²»»áµÈ´ýÍêÕûµÄURLÏìÓ¦¡£
  4. Ö»ÒªÅú´¦ÀíÖл¹ÓлÁ¬½ÓÖ÷Ñ­»·¾Í»áÒ»Ö±³ÖÐø¡£
  5. curl_multi_select() »áÒ»Ö±µÈ´ý£¬Ö±µ½Ä³¸öURL²éѯ²úÉú»î¶¯Á¬½Ó¡£
  6. cURLµÄ»î¶ùÓÖÀ´ÁË£¬Ö÷ÒªÊÇ»ñÈ¡ÏìÓ¦Êý¾Ý¡£
  7. ¼ì²é¸÷ÖÖÐÅÏ¢¡£µ±Ò»¸öURLÇëÇóÍê³Éʱ£¬»á·µ»ØÒ»¸öÊý×é¡£
  8. ÔÚ·µ»ØµÄÊý×éÖÐÓÐÒ»¸ö cURL ¾ä±ú¡£ÎÒÃÇÀûÓÃÆä»ñÈ¡µ¥¸öcURLÇëÇóµÄÏàÓ¦ÐÅÏ¢¡£
  9. Èç¹ûÕâÊÇÒ»¸öËÀÁ´»òÕßÇëÇó³¬Ê±£¬²»»á·µ»Øhttp״̬Âë¡£
  10. Èç¹ûÕâ¸öÒ³ÃæÕÒ²»µ½ÁË£¬»á·µ»Ø404״̬Âë¡£
  11. ÆäËûÇé¿öÎÒÃǶ¼ÈÏΪÕâ¸öÁ´½ÓÊÇ¿ÉÓõģ¨µ±È»£¬ÄãÒ²¿ÉÒÔÔÙ¼ì²éÒ»ÏÂ500´íÎóÖ®Àà...£©¡£
  12. ´Ó¸ÃÅú´ÎÒƳýÕâ¸öcURL¾ä±ú£¬ÒòΪËüÒѾ­Ã»ÓÐÀûÓüÛÖµÁË£¬¹ØÁËËü£¡
  13. ºÜºÃ£¬ÏÖÔÚ¿ÉÒÔÁíÍâ¼ÓÒ»¸öURL½øÀ´ÁË¡£ÔÙÒ»´ÎµØ£¬³õʼ»¯¹¤×÷ÓÖ¿ªÊ¼½øÐÐ...
  14. àÅ£¬¸Ã¸ÉµÄ¶¼¸ÉÁË¡£¹Ø±ÕÅú´¦ÀíÆ÷£¬Éú³É±¨¸æ¡£
  15. »Ø¹ýÍ·À´¿´¸øÅú´¦ÀíÆ÷Ìí¼ÓÐÂURLµÄº¯Êý¡£Õâ¸öº¯Êýÿµ÷ÓÃÒ»´Î£¬¾²Ì¬±äÁ¿ $index ¾ÍµÝÔöÒ»´Î£¬ÕâÑùÎÒÃDzÅÄÜÖªµÀ»¹Ê£¶àÉÙURLû´¦Àí¡£

ÎÒ°ÑÕâ¸ö½Å±¾ÔÚÎҵIJ©¿ÍÉÏÅÜÁËÒ»±é£¨²âÊÔÐèÒª£¬ÓÐһЩ´íÎóÁ´½ÓÊ**ÊÒâ¼ÓÉϵģ©£¬½á¹ûÈçÏ£º

<img border="0" src="http://nettuts.s3.cdn.plus.org/534_curl/ss_4.png" />

¹²¼ì²éÔ¼40¸öURL£¬Ö»ºÄ·ÑÁ½Ãë²»µ½¡£µ±ÐèÒª¼ì²é¸ü¼Ó´óÁ¿µÄURLʱ£¬ÆäÊ¡ÐÄÊ¡Á¦µÄЧ¹û¿ÉÏë¶øÖª£¡Èç¹ûÄãͬʱ´ò¿ª10¸öÁ¬½Ó£¬»¹ÄÜÔÙ¿ìÉÏ10±¶£¡ÁíÍ⣬Ä㻹¿ÉÒÔÀûÓÃcURLÅú´¦ÀíµÄÎÞ¸ô¶ÏÌØÐÔÀ´´¦Àí´óÁ¿URLÇëÇ󣬶ø²»»á×èÈûÄãµÄWeb½Å±¾¡£

ÁíһЩÓÐÓõÄcURL Ñ¡Ïî

HTTP ÈÏÖ¤

Èç¹ûij¸öURLÇëÇóÐèÒª»ùÓÚ HTTP µÄÉí·ÝÑéÖ¤£¬Äã¿ÉÒÔʹÓÃÏÂÃæµÄ´úÂ룺
¸´ÖÆÄÚÈݵ½¼ôÌù°å´úÂë:

$url = "http://www.somesite.com/members/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// ·¢ËÍÓû§ÃûºÍÃÜÂë
curl_setopt($ch, CURLOPT_USERPWD, "myusername:mypassword");
// Äã¿ÉÒÔÔÊÐíÆäÖض¨Ïò
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
// ÏÂÃæµÄÑ¡ÏîÈà cURL ÔÚÖض¨Ïòºó
// Ò²ÄÜ·¢ËÍÓû§ÃûºÍÃÜÂë
curl_setopt($ch, CURLOPT_UNRESTRICTED_AUTH, 1);
$output = curl_exec($ch);
curl_close($ch);

FTP ÉÏ´«

PHP ×Ô´øÓÐ FTP Àà¿â£¬ µ«ÄãÒ²ÄÜÓà cURL£º

// ¿ªÒ»¸öÎļþÖ¸Õë
$file = fopen("/path/to/file", "r");
// urlÀï°üº¬Á˴󲿷ÖËùÐèÐÅÏ¢
$url = "ftp://username:password@mydomain.com:21/path/to/new/file";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// ÉÏ´«Ïà¹ØµÄÑ¡Ïî
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize("/path/to/file"));
// ÊÇ·ñ¿ªÆôASCIIģʽ (ÉÏ´«Îı¾ÎļþʱÓÐÓÃ)
curl_setopt($ch, CURLOPT_FTPASCII, 1);
$output = curl_exec($ch);
curl_close($ch);

****Êõ

Äã¿ÉÒÔÓôúÀí·¢ÆðcURLÇëÇó£º

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,''http://www.example.com'');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Ö¸¶¨´úÀíµØÖ·
curl_setopt($ch, CURLOPT_PROXY, ''11.11.11.11:8080'');
// Èç¹ûÐèÒªµÄ»°£¬ÌṩÓû§ÃûºÍÃÜÂë
curl_setopt($ch, CURLOPT_PROXYUSERPWD,''user:pass'');
$output = curl_exec($ch);
curl_close ($ch);

»Øµ÷º¯Êý

¿ÉÒÔÔÚÒ»¸öURLÇëÇó¹ý³ÌÖУ¬ÈÃcURLµ÷ÓÃijָ¶¨µÄ»Øµ÷º¯Êý¡£ÀýÈ磬ÔÚÄÚÈÝ»òÕßÏìÓ¦ÏÂÔصĹý³ÌÖÐÁ¢¿Ì¿ªÊ¼ÀûÓÃÊý¾Ý£¬¶ø²»Óõȵ½ÍêÈ«ÏÂÔØÍê¡£

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,''http://net.tutsplus.com'');
curl_setopt($ch, CURLOPT_WRITEFUNCTION,"progress_function");
curl_exec($ch);
curl_close ($ch);
function progress_function($ch,$str) {
    echo $str;
    return strlen($str);
}

Õâ¸ö»Øµ÷º¯Êý±ØÐë·µ»Ø×Ö´®µÄ³¤¶È£¬²»È»´Ë¹¦Äܽ«ÎÞ·¨Õý³£Ê¹Óá£

ÔÚURLÏìÓ¦½ÓÊյĹý³ÌÖУ¬Ö»ÒªÊÕµ½Ò»¸öÊý¾Ý°ü£¬Õâ¸öº¯Êý¾Í»á±»µ÷Óá£

С½á

½ñÌìÎÒÃÇÒ»ÆðѧϰÁËcURL¿âµÄÇ¿´ó¹¦ÄܺÍÁé»îµÄÀ©Õ¹ÐÔ¡£Ï£ÍûÄãϲ»¶¡£ÏÂÒ»´ÎÒª·¢ÆðURLÇëÇóʱ£¬¿¼ÂÇÏÂcURL°É£¡

ÁèÖڿƼ¼×¨ÒµÌṩ·þÎñÆ÷×âÓᢷþÎñÆ÷Íйܡ¢ÆóÒµÓʾ֡¢ÐéÄâÖ÷»úµÈ·þÎñ£¬¹«Ë¾ÍøÕ¾£ºhttp://www.lingzhong.cn ΪÁ˸ø¹ã´ó¿Í»§Á˽â¸ü¶àµÄ¼¼ÊõÐÅÏ¢£¬±¾¼¼ÊõÎÄÕÂÊÕ¼¯À´Ô´ÓÚÍøÂç,ÁèÖڿƼ¼×ðÖØÎÄÕÂ×÷ÕߵİæȨ£¬Èç¹ûÓÐÉæ¼°ÄãµÄ°æȨÓбØҪɾ³ýÄãµÄÎÄÕ£¬ÇëºÍÎÒÃÇÁªÏµ¡£ÒÔÉÏÐÅÏ¢ÓëÎÄÕÂÕýÎÄÊDz»¿É·Ö¸îµÄÒ»²¿·Ö,Èç¹ûÄúҪתÔر¾ÎÄÕÂ,Çë±£ÁôÒÔÉÏÐÅÏ¢£¬Ð»Ð»!

·ÖÏíµ½£º ¸ü¶à

Copyright ©1999-2011 ÏÃÃÅÁèÖڿƼ¼ÓÐÏÞ¹«Ë¾ ÏÃÃÅÓÅͨ»¥Áª¿Æ¼¼¿ª·¢ÓÐÏÞ¹«Ë¾ All rights reserved

µØÖ·(ADD)£ºÏÃÃÅÈí¼þÔ°¶þÆÚÍûº£Â·63ºÅ701E£¨¶«ÄÏÈÚͨÅÔ£© Óʱà(ZIP)£º361008

µç»°£º0592-5908028 ´«Õ棺0592-5908039 ×ÉѯÐÅÏ䣺web@lingzhong.cn ×ÉѯOICQ£º173723134

¡¶ÖлªÈËÃñ¹²ºÍ¹úÔöÖµµçÐÅÒµÎñ¾­ÓªÐí¿ÉÖ¤¡·ÃöB2-20100024  ICP±¸°¸:ÃöICP±¸05037997ºÅ