เกี่ยวกับจะเก็บแยกค่าที่เป็น response จาก http ครับ

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderators: mindphp, ผู้ดูแลกระดาน

User avatar
oxygenyoyo
PHP Hero Member
PHP Hero Member
Posts: 140
Joined: 01/01/1970 7:00 am

เกี่ยวกับจะเก็บแยกค่าที่เป็น response จาก http ครับ

Post by oxygenyoyo » 17/07/2008 5:39 pm

คือผมติดปัญหาเี่กี่ยวกับว่า

ผมต้องส่งค่า request ไปที่ host ที่หนึ่งโดยทาง host เค้าให้คู่มือมาว่าจะตอบกลับ (response ) เป็น
format xml ซึ่งผมก็ได้ทำการจำลองการส่งดู localhost โดยได้รับค่า response กลับมาเป็น 200
แต่เป็น response ธรรมดา และติดค่า xml มาด้วย

โดยโค้ดหน้าส่งเป็นอย่างนี้ครับ

Code: Select all

<?
   $fp = fsockopen("$host", 80, $errno, $errstr, 30);
      if (!$fp)
      {
      echo "$errstr ($errno)\n";
      }
      else
      {

             fwrite($fp,"POST /test.php HTTP/1.0\r\nHost: localhost\r\n\r\n$data");
      
         
         $x="";
            while (!feof($fp)) {
               $x=$x.fgets($fp, 128);   
               
            }
            fclose($fp);


?>


โดยผม echo $x ออกมาจะได้ดังนี้ครับ

HTTP/1.1 200 OK Date: Thu, 17 Jul 2008 03:29:59 GMT Server: Apache/2.2.3 (Win32) PHP/5.1.6 X-Powered-By: PHP/5.1.6 Content-Length: 82 Connection: close Content-Type: text/xml; charset=UTF-8 200

ซึ่งถ้ากดดู view source จะเห็นดังนี้ครับ

HTTP/1.1 200 OK
Date: Thu, 17 Jul 2008 03:29:59 GMT
Server: Apache/2.2.3 (Win32) PHP/5.1.6
X-Powered-By: PHP/5.1.6
Content-Length: 82
Connection: close
Content-Type: text/xml; charset=UTF-8


<cpa-wap>
<cpa-response>
<status>200</status>
</cpa-response>
</cpa-wap>

ซึ่งผมเห็นว่ามีค่า tag xml ติดมาแต่ปัญหาคือผมจะแยกเอาค่านั้นอย่างไรครับ

ซึ่งผมได้ทำการลองใช้ DOMDocument ดูก็ไม่ได้ครับ

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 22180
Joined: 22/09/2008 6:18 pm
Contact:

Re: เกี่ยวกับจะเก็บแยกค่าที่เป็น response จาก http ครับ

Post by mindphp » 19/07/2008 6:17 am

ต้องแยก ระหว่าง
Header กับ data ออกจากัน ก่อน ครับ แล้วค่อยใช้ function เกี่ยว กับ XML เข้ามาจัดการอีกทีหนึ่ง
Header
HTTP/1.1 200 OK
Date: Thu, 17 Jul 2008 03:29:59 GMT
Server: Apache/2.2.3 (Win32) PHP/5.1.6
X-Powered-By: PHP/5.1.6
Content-Length: 82
Connection: close
Content-Type: text/xml; charset=UTF-8

data
<cpa-wap>
<cpa-response>
<status>200</status>
</cpa-response>
</cpa-wap>


ซึ่งทั้ง สองส่วนจะถูกแยกด้วย Delimiter ถ้าเรารู้ว่า Delimiter ที่ใช้ขั้นเค้าใช้ อะไร ก็ใช้ function explode() มาแยก ได้
ถ้าไม่รู้ ลองใช้ print_r(explode("\r\n",$data)); ดูอาจพอช่วยได้
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

User avatar
oxygenyoyo
PHP Hero Member
PHP Hero Member
Posts: 140
Joined: 01/01/1970 7:00 am

Re: เกี่ยวกับจะเก็บแยกค่าที่เป็น response จาก http ครับ

Post by oxygenyoyo » 21/07/2008 4:48 pm

ผมทำไ้ด้แหละครับ คุณ mindphp แต่โดยใช้ฟังก์ชั่น stristr()

โดยเรียก tag แรกเลยครับจะได้ข้อมูลมาแล้วค่อยแยกแต่ละ tag เอาโดยใช้ simpleXML ครับ

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 22180
Joined: 22/09/2008 6:18 pm
Contact:

Re: เกี่ยวกับจะเก็บแยกค่าที่เป็น response จาก http ครับ

Post by mindphp » 22/07/2008 12:18 am

ใช้อะไร เป็นตัวแยกครับ
จริงใช้
<cpa-wap>

เป็นตัวแยกเลยก็ ได้ นะ
พอได้ string เป็น สองชุด ชุดที่จะเอามาใช้ก็เอา
<cpa-wap> ต่อที่ข้างหน้ามันอีกที
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

User avatar
oxygenyoyo
PHP Hero Member
PHP Hero Member
Posts: 140
Joined: 01/01/1970 7:00 am

Re: เกี่ยวกับจะเก็บแยกค่าที่เป็น response จาก http ครับ

Post by oxygenyoyo » 22/07/2008 6:37 pm

ผมใช้ฟังก์ชั่นที่บอกด้านบนอ่ะครับ

มันจะทำการเรียกคำที่เราทำการใส่ไว้อ่ะครับโดยจะไปคำนั้นเป็นอันแรกแล้วด้านหน้ามันจะตัดออกหมดครับ

stristr($x,"<cpa-wap>");

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 22180
Joined: 22/09/2008 6:18 pm
Contact:

Re: เกี่ยวกับจะเก็บแยกค่าที่เป็น response จาก http ครับ

Post by mindphp » 22/07/2008 9:10 pm

oxygenyoyo wrote:ผมใช้ฟังก์ชั่นที่บอกด้านบนอ่ะครับ

มันจะทำการเรียกคำที่เราทำการใส่ไว้อ่ะครับโดยจะไปคำนั้นเป็นอันแรกแล้วด้านหน้ามันจะตัดออกหมดครับ

stristr($x,"<cpa-wap>");

ครับใช้ได้เหมือนกัน ต่างกัน ตรงที่ function ที่ผมแนะนำ จะได้ array แต่ของท่าน oxygenyoyo ได้ string
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Programming - PHP”

Who is online

Users browsing this forum: No registered users and 38 guests