ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์ProgrammingcURL หากเราสั้งเปิด url พร้อมกัน หลายๆเวปมันจะอึดๆ มีทางแก้ไขไหมครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: cURL หากเราสั้งเปิด url พร้อมกัน หลายๆเวปมันจะอึดๆ มีทางแก้ไขไหมครับ  (อ่าน 3719 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
pooh20240
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 245
ออฟไลน์ ออฟไลน์

กระทู้: 3,632



ดูรายละเอียด เว็บไซต์
« เมื่อ: 14 มิถุนายน 2014, 22:56:28 »

กำลังจะลองเขียน get data ครับ และต้องการให้ curl รองรับการเปิดเวปหลายๆเวปพร้อมกัน มีทางเป็นไปได้ไหมครับหรือต้องใช้ code ตัวอื่นช่วย
จากที่ทดสอบหากเรียก cURL แค่ 1้วปจะไวมากๆๆ  แต่พอลง 3เวปพร้อมกันขึ้นไปจะ ช้าๆ  Tongue




บันทึกการเข้า

แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย
ReleaseCandidate
คนรักเสียว
*

พลังน้ำใจ: 43
ออฟไลน์ ออฟไลน์

กระทู้: 181



ดูรายละเอียด
« ตอบ #1 เมื่อ: 15 มิถุนายน 2014, 06:21:53 »

อันนี้น่าจะช่วยนะครับ
Simultaneuos HTTP requests in PHP with cURL

โค๊ด:
http://www.phpied.com/simultaneuos-http-requests-in-php-with-curl/

######## A function
<?php
 
function multiRequest($data$options = array()) {
 
  
// array of curl handles
  
$curly = array();
  
// data to be returned
  
$result = array();
 
  
// multi handle
  
$mh curl_multi_init();
 
  
// loop through $data and create curl handles
  // then add them to the multi-handle
  
foreach ($data as $id => $d) {
 
    
$curly[$id] = curl_init();
 
    
$url = (is_array($d) && !empty($d[&#39;url&#39;])) ? $d[&#39;url&#39;] : $d;
    
curl_setopt($curly[$id], CURLOPT_URL,            $url);
    
curl_setopt($curly[$id], CURLOPT_HEADER,         0);
    
curl_setopt($curly[$id], CURLOPT_RETURNTRANSFER1);
 
    
// post?
    
if (is_array($d)) {
      if (!empty(
$d[&#39;post&#39;])) {
        
curl_setopt($curly[$id], CURLOPT_POST,       1);
        
curl_setopt($curly[$id], CURLOPT_POSTFIELDS$d[&#39;post&#39;]);
      
}
    }
 
    
// extra options?
    
if (!empty($options)) {
      
curl_setopt_array($curly[$id], $options);
    }
 
    
curl_multi_add_handle($mh$curly[$id]);
  }
 
  
// execute the handles
  
$running null;
  do {
    
curl_multi_exec($mh$running);
  } while(
$running 0);
 
 
  
// get content and remove handles
  
foreach($curly as $id => $c) {
    
$result[$id] = curl_multi_getcontent($c);
    
curl_multi_remove_handle($mh$c);
  }
 
  
// all done
  
curl_multi_close($mh);
 
  return 
$result;
}
 
?>



######## A GET example
<?php
 
$data 
= array(
  &
#39;http://search.yahooapis.com/XXXXXX/V1/videoSearch?appid=YahooDemo&query=Pearl+Jam&output=json&#39;,
  
&#39;http://search.yahooapis.com/XXXXXX/V1/imageSearch?appid=YahooDemo&query=Pearl+Jam&output=json&#39;,
  
&#39;http://search.yahooapis.com/XXXXXX/V1/artistSearch?appid=YahooDemo&artist=Pearl+Jam&output=json&#39;
);
$r multiRequest($data);
 
echo &
#39;<pre>&#39;;
print_r($r);
 
?>


ที่ก็อป code มาด้วยเผื่อเว็บต้นทางหาย  wanwan019
บันทึกการเข้า

pooh20240
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 245
ออฟไลน์ ออฟไลน์

กระทู้: 3,632



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 15 มิถุนายน 2014, 10:11:45 »

อันนี้น่าจะช่วยนะครับ
Simultaneuos HTTP requests in PHP with cURL

โค๊ด:
http://www.phpied.com/simultaneuos-http-requests-in-php-with-curl/

######## A function
<?php
 
function multiRequest($data$options = array()) {
 
  
// array of curl handles
  
$curly = array();
  
// data to be returned
  
$result = array();
 
  
// multi handle
  
$mh curl_multi_init();
 
  
// loop through $data and create curl handles
  // then add them to the multi-handle
  
foreach ($data as $id => $d) {
 
    
$curly[$id] = curl_init();
 
    
$url = (is_array($d) && !empty($d[&#39;url&#39;])) ? $d[&#39;url&#39;] : $d;
    
curl_setopt($curly[$id], CURLOPT_URL,            $url);
    
curl_setopt($curly[$id], CURLOPT_HEADER,         0);
    
curl_setopt($curly[$id], CURLOPT_RETURNTRANSFER1);
 
    
// post?
    
if (is_array($d)) {
      if (!empty(
$d[&#39;post&#39;])) {
        
curl_setopt($curly[$id], CURLOPT_POST,       1);
        
curl_setopt($curly[$id], CURLOPT_POSTFIELDS$d[&#39;post&#39;]);
      
}
    }
 
    
// extra options?
    
if (!empty($options)) {
      
curl_setopt_array($curly[$id], $options);
    }
 
    
curl_multi_add_handle($mh$curly[$id]);
  }
 
  
// execute the handles
  
$running null;
  do {
    
curl_multi_exec($mh$running);
  } while(
$running 0);
 
 
  
// get content and remove handles
  
foreach($curly as $id => $c) {
    
$result[$id] = curl_multi_getcontent($c);
    
curl_multi_remove_handle($mh$c);
  }
 
  
// all done
  
curl_multi_close($mh);
 
  return 
$result;
}
 
?>



######## A GET example
<?php
 
$data 
= array(
  &
#39;http://search.yahooapis.com/XXXXXX/V1/videoSearch?appid=YahooDemo&query=Pearl+Jam&output=json&#39;,
  
&#39;http://search.yahooapis.com/XXXXXX/V1/imageSearch?appid=YahooDemo&query=Pearl+Jam&output=json&#39;,
  
&#39;http://search.yahooapis.com/XXXXXX/V1/artistSearch?appid=YahooDemo&artist=Pearl+Jam&output=json&#39;
);
$r multiRequest($data);
 
echo &
#39;<pre>&#39;;
print_r($r);
 
?>


ที่ก็อป code มาด้วยเผื่อเว็บต้นทางหาย  wanwan019


ขอบคุณครับ เด่วไปลองก่อน ^ ^
บันทึกการเข้า

แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย
pooh20240
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 245
ออฟไลน์ ออฟไลน์

กระทู้: 3,632



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 15 มิถุนายน 2014, 15:09:47 »

สอบถามเพิ่มเกี่ยวกับ xml  load แบบไหนไวกว่ากันครับรหว่าง

-----------------------------------------------------------------------------
แบบ 1

   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $request);
   curl_setopt($ch, CURLOPT_HEADER, 0);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   $data = curl_exec($ch);
   curl_close($ch);
   $parxml = new SimpleXMLElement($data);

-----------------------------------------------------------------------------
// แบบ 2

$parxml = simplexml_load_file($request) or die("Sorry, can't open this: ".$request);


-----------------------------------------------------------------------------


หรือมีแบบที่ไวกว่าแนะนำหน่อยนะครับ อยากให้เวปเปิดไวๆ คือมันชอบช้าตอนที่ loop เรือยๆ พร้อมกัน  Tongue
บันทึกการเข้า

แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย
pooh20240
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 245
ออฟไลน์ ออฟไลน์

กระทู้: 3,632



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 15 มิถุนายน 2014, 18:43:20 »

ลอง 2แบบ ช้า หมดเลย  Tongue
บันทึกการเข้า

แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย
gd_ab
ก๊วนเสียว
*

พลังน้ำใจ: 27
ออฟไลน์ ออฟไลน์

กระทู้: 353



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 15 มิถุนายน 2014, 21:31:48 »

ลองใช้ AJAX มาช่วยมั้ยครับ
ดึงข้อมูลจากกี่เว็บล่ะครับ

การใช้ cUrl เป็นการใช้ server ดึงข้อมูลมา
แต่การใช้ AJAX จะเป็นการสั่งให้ client browser ไปดึงข้อมูลมา ถ้าดึงข้อมูลหลายเว็บมากเกินไป ก็ช้าได้เหมือนกันครับ
บันทึกการเข้า

pooh20240
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 245
ออฟไลน์ ออฟไลน์

กระทู้: 3,632



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 15 มิถุนายน 2014, 22:29:24 »

ลองใช้ AJAX มาช่วยมั้ยครับ
ดึงข้อมูลจากกี่เว็บล่ะครับ

การใช้ cUrl เป็นการใช้ server ดึงข้อมูลมา
แต่การใช้ AJAX จะเป็นการสั่งให้ client browser ไปดึงข้อมูลมา ถ้าดึงข้อมูลหลายเว็บมากเกินไป ก็ช้าได้เหมือนกันครับ

ดึงครั้งละ 1เวปครับ แต่เป็น loop
บันทึกการเข้า

แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย
gd_ab
ก๊วนเสียว
*

พลังน้ำใจ: 27
ออฟไลน์ ออฟไลน์

กระทู้: 353



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 15 มิถุนายน 2014, 23:47:08 »

งั้นก็ไม่น่าจะมีปัญหานะครับ
ใช้ xmlHttp ใน javascript
หรือจะใช้ jQuery ไปเลยก็ได้ครับ
บันทึกการเข้า

Legendary Pon
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 56
ออฟไลน์ ออฟไลน์

กระทู้: 2,216



ดูรายละเอียด
« ตอบ #8 เมื่อ: 16 มิถุนายน 2014, 03:59:07 »

งั้นก็ไม่น่าจะมีปัญหานะครับ
ใช้ xmlHttp ใน javascript
หรือจะใช้ jQuery ไปเลยก็ได้ครับ

มีตัวอย่างมั้ยครับ
บันทึกการเข้า

pooh20240
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 245
ออฟไลน์ ออฟไลน์

กระทู้: 3,632



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 16 มิถุนายน 2014, 11:32:12 »

งั้นก็ไม่น่าจะมีปัญหานะครับ
ใช้ xmlHttp ใน javascript
หรือจะใช้ jQuery ไปเลยก็ได้ครับ

ขอบคุณ ที่แนะนำครับ เด่วไปหาลองก่อน ว่าแต่มันใช้คู่กับ php xml ได้หรอครับ  Tongue
บันทึกการเข้า

แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย
thaimarketpress
ก๊วนเสียว
*

พลังน้ำใจ: 31
ออฟไลน์ ออฟไลน์

กระทู้: 341



ดูรายละเอียด
« ตอบ #10 เมื่อ: 16 มิถุนายน 2014, 11:52:17 »

ใน 1 request ที่ สคริป ของท่านผมว่าอย่ายิง curl หรือ เรียก api ใดๆเกิน 1 request จะดีที่สุดนะครับแต่ถ้าจำเป็นต้องใช้หลายๆ url ผมแนะนำให้ทำหน้า cron ตั้งเวลาไปกวาดมาลง database เก็บไว้เป็นแคชน่าจะเหมาะสมกว่าครับ 
ตอบแบบงูๆปลาๆคนความรู้น้อยนะครับเผื่อจะช่วยได้
บันทึกการเข้า

หาซื้อเว็บไซต์มีรายได้แนวเว็บบอร์ด/ชมรม/คลับ ที่ไม่ผิดกฏหมาย งบ 100k ลองเสนอมานะครับ
zapanlek
สมุนแก๊งเสียว
*

พลังน้ำใจ: 32
ออฟไลน์ ออฟไลน์

กระทู้: 502



ดูรายละเอียด
« ตอบ #11 เมื่อ: 16 มิถุนายน 2014, 11:56:56 »

หากไม่ใช่เวป ที่ต้องการ ข้อมูล Real Time เก็บใส่ฐานข้อมูลดีกว่าครับ ตั้ง cron ดูดเอาครับ ตั้งสัก 1 ชั่วโมงครั้งก็ได้ครับ
จะได้ตัดข้อมูลไม่สำคัญออกไปได้ด้วยกันการโหลดช้า พวกรูปพวกต่างๆ Flash ต่างๆ ตัดออกให้หมด ครับ ดีกว่าเยอะ

ของผมดูดกว่า 10 เวป เอาแต่ที่สำคัญๆมาโชว์ ดีกว่าเยอะครับ  Embarrassed
บันทึกการเข้า
gd_ab
ก๊วนเสียว
*

พลังน้ำใจ: 27
ออฟไลน์ ออฟไลน์

กระทู้: 353



ดูรายละเอียด เว็บไซต์
« ตอบ #12 เมื่อ: 18 มิถุนายน 2014, 19:32:34 »

งั้นก็ไม่น่าจะมีปัญหานะครับ
ใช้ xmlHttp ใน javascript
หรือจะใช้ jQuery ไปเลยก็ได้ครับ

ขอบคุณ ที่แนะนำครับ เด่วไปหาลองก่อน ว่าแต่มันใช้คู่กับ php xml ได้หรอครับ  Tongue

ขอโทษที่มาตอบช้าครับ ใช้กับ XML ได้ครับ เพราะค่าที่ AJAX รับมาจะเป็น Text ทั้งหมดเลย มาเป็น html ก็มาเป็นแท็กเลย
ถ้ามาเป็น XML ใช้ได้ครับ

ถ้าจำไม่ผิด Javascript ก็สามารถแปลง XML เอามาใช้งานได้ง่ายด้วยนะครับ ที่เคยใช้ผมจะใช้เป็น JSON น่ะครับ
บันทึกการเข้า

pooh20240
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 245
ออฟไลน์ ออฟไลน์

กระทู้: 3,632



ดูรายละเอียด เว็บไซต์
« ตอบ #13 เมื่อ: 18 มิถุนายน 2014, 19:48:49 »

งั้นก็ไม่น่าจะมีปัญหานะครับ
ใช้ xmlHttp ใน javascript
หรือจะใช้ jQuery ไปเลยก็ได้ครับ

ขอบคุณ ที่แนะนำครับ เด่วไปหาลองก่อน ว่าแต่มันใช้คู่กับ php xml ได้หรอครับ  Tongue

ขอโทษที่มาตอบช้าครับ ใช้กับ XML ได้ครับ เพราะค่าที่ AJAX รับมาจะเป็น Text ทั้งหมดเลย มาเป็น html ก็มาเป็นแท็กเลย
ถ้ามาเป็น XML ใช้ได้ครับ

ถ้าจำไม่ผิด Javascript ก็สามารถแปลง XML เอามาใช้งานได้ง่ายด้วยนะครับ ที่เคยใช้ผมจะใช้เป็น JSON น่ะครับ

ขอบคุณมากครับ เด๋วจะลองทดสอบกับ r24 ดูครับ wanwan017
บันทึกการเข้า

แหล่งรวมสาว AV 18+ <== BAN USER ถาวร เรียบร้อย
หน้า: [1]   ขึ้นบน
พิมพ์