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

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

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

ภาพประจำตัวสมาชิก
oxygenyoyo
PHP Hero Member
PHP Hero Member
โพสต์: 140
ลงทะเบียนเมื่อ: 01/01/1970 7:00 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย oxygenyoyo »

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

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

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

โค้ด: เลือกทั้งหมด

<?
	$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 ดูก็ไม่ได้ครับ
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41123
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

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

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ต้องแยก ระหว่าง
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
ภาพประจำตัวสมาชิก
oxygenyoyo
PHP Hero Member
PHP Hero Member
โพสต์: 140
ลงทะเบียนเมื่อ: 01/01/1970 7:00 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย oxygenyoyo »

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

โดยเรียก tag แรกเลยครับจะได้ข้อมูลมาแล้วค่อยแยกแต่ละ tag เอาโดยใช้ simpleXML ครับ
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41123
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

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

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ใช้อะไร เป็นตัวแยกครับ
จริงใช้
<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
ภาพประจำตัวสมาชิก
oxygenyoyo
PHP Hero Member
PHP Hero Member
โพสต์: 140
ลงทะเบียนเมื่อ: 01/01/1970 7:00 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย oxygenyoyo »

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

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

stristr($x,"<cpa-wap>");
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41123
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

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

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

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

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

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
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 57