get_headers คำสั่งที่มีประโยชน์มากๆ ใน PHP5
PHP5 ที่เราใช้นั้น เท่าที่ผมเห็น และพิสูจน์ด้วยตัวเอง มันมีข้อดีกว่า PHP4 มากๆ นอกเหนือจากการสนับสนุน OOP เต็มรูปแบบแล้ว ยังเพิ่ม built in function อีกมากมาย หนึ่งในนั้นก็คือคำสั่ง get_headers ที่ผมช้อบชอบ
ผมเห็นหลายๆคนยังชอบเช็ค file ที่มาจากถายนอกว่ามี หนือไม่ ด้วยคำสั่ง $fopen($url, ‘r’) ซึ่งผมบอกได้เลยว่า มันกินทรัพยากรเครื่องมาก ขนาดทำให้ล่มได้ด้วยคำสั่งเดียวเลยล่ะ (โครตน่ากลัว) เจอกับตัวเองมาแล้ว
ถ้าคุณเป็นคนนึงที่ใช้ PHP5 ในการพัฒนาเวบไซด์แล้วล่ะก็ เปลี่ยนมาใช้คำสั่งนี้กันดีกว่า
-
<?php
-
$url = ‘http://www.example.com’;
-
-
-
?>
ซึ่งผลที่ได้คืนมาจะอยู่ในรูปแบบ array ถ้าใส่ parameter 1 เข้าไปจะคืนมาในลักษณะ ของ associate array
ดังนี้
-
-
(
-
[0] => HTTP/1.1 200 OK
-
[2] => Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
-
[3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
-
[4] => ETag: "3f80f-1b6-3e1cb03b"
-
[5] => Accept-Ranges: bytes
-
[6] => Content-Length: 438
-
[7] => Connection: close
-
[8] => Content-Type: text/html
-
)
-
-
(
-
[0] => HTTP/1.1 200 OK
-
[Server] => Apache/1.3.27 (Unix) (Red-Hat/Linux)
-
[Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT
-
[ETag] => "3f80f-1b6-3e1cb03b"
-
[Accept-Ranges] => bytes
-
[Content-Length] => 438
-
[Connection] => close
-
[Content-Type] => text/html
-
)
-
ดังนี้เราก็สามารถตรวจสอบรายละเอียด ของ url ที่เราไปเรียกได้แล้ว โดยไม่ต้องใช้คำสั่ง ฆ่าตัวตาย แบบตอนแรก
HTTP/1.1 200 OK
ตัวข้างบนจะเป็นการบอก status ของ url ที่เราไปเรียก โดย 200 คือ การตรวจสอบแล้วว่าไฟล์มีจริง สามารถใช้งานได้
แต่ถ้าคุณยัยืนยันที่จะใช้ PHP4 เหมือนเดิม ผมก็ขอแนะนำให้เขียนแบบนี้จะดีกว่า
-
<?php
-
{
-
function get_headers($url,$format=0)
-
{
-
$end = "\r\n\r\n";
-
if ($fp)
-
{
-
$out = "GET / HTTP/1.1\r\n";
-
$out .= "Host: ".$url[‘host’]."\r\n";
-
$out .= "Connection: Close\r\n\r\n";
-
$var = ”;
-
{
-
break;
-
}
-
-
if($format)
-
{
-
foreach($var as $i)
-
{
-
$v[$parts[1]]=$parts[2];
-
}
-
return $v;
-
}
-
else
-
return $var;
-
}
-
}
-
}
-
?>
แต่มันก็ยังกิน resource มากกว่าเยอะ อยู่ดี -*-
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
แล้วในกรณีเราตองการส่ง Ack กลับไปล่ะค่ะ เช่น
HTTP/1.1 200 OK
Content-Type: text/plain
เป็น php ต้องทำไงอ่ะค่ะ
ลองศึกษาเรื่องการส่ง header จาก link ด้านล่างดูครับ
http://th.php.net/manual/en/function.header.php