stream_get_meta_data()
ใน php programming มีฟังก์ชันหนึ่งที่น่าสนใจซึ่งสามารถดึงข้อมูลในส่วนหัวได้โดยเท่าเราไมท่จำเป็นต้องไปแกะเอาเอง เพียงเรียกใช้ฟังก์ชันนี้จะให้ข้อมูล meta ที่เกือบจะครอบคลุ่มทั้งหมดให้เราได้
ฟังก์ชั่น stream_get_meta_data () เป็นฟังก์ชั่น PHP ซึ่งใช้ในการรับข้อมูลส่วนหัวหรือข้อมูลเมตาจากตัวชี้สตรีม / ไฟล์
stream_get_meta_data ( resource $stream ) : array
พารามิเตอร์ : ฟังก์ชั่นยอมรับพารามิเตอร์$ streamเดียวซึ่งระบุข้อมูลเมตาที่จะดึงและสร้างโดยฟังก์ชัน fopen() , fsockopen() และ pfsockopen() ต่างๆ
Return Value:ฟังก์ชั่นนี้ส่งกลับ อาร์เรย์ ซึ่งมีรายการดังต่อไปนี้ :
- timed_out : เป็นรายการประเภทบูลีนและ TRUE หากสตรีมหมดเวลา
- blocked : มันเป็นรายการประเภทบูลีนและเป็นจริงถ้า stream อยู่ในการบล็อคโหมด IO
- eof (bool) : มันเป็นตัวเลือก(optional) เป็นจริงหากสตรีมถึงจุดสิ้นสุดไฟล์(end-of-file)
- unread_bytes : จำนวนไบต์ของบัฟเฟอร์ภายใน(internal buffer)
- stream_type : มันถูกใช้เพื่อระบุการใช้งานของสตรีม
- wrapper_type : มันถูกใช้เพื่อระบุเลเยอร์การใช้โพรโทคอล wrapper
- wrapper_data : เป็นข้อมูลเฉพาะที่แนบมากับสตรีมนี้
- mode : เป็นประเภทการเข้าถึงที่จำเป็นสำหรับสตรีมนี้
- seekable : มันเป็นจริงเมื่อมีสตรีมค้นหา
- uri : ตัวระบุทรัพยากร(resource)หรือแหล่งที่ระบุโดยผู้ใช้
โด้ดด้านล่างนี้เป็นตัวอย่างโปรแกรมการใช้งานฟังก์ชัน stream_get_meta_data()
<?php
// PHP program to illustrate
// stream_get_meta_data fuction
$url = 'https://mindphp.com';
$file = fopen($url, 'r');
$meta_data = stream_get_meta_data($file);
print_r($meta_data);
fclose($file);
?>
ในโปรแกรมนี้เราได้กำหนด url เป็น https://mindphp.com เพื่อจะดึงข้อมูลส่วนหัวหรือข้อมูลเมตาจากหน้าเว็บนี้
ซึ่งมีผลลัพธ์ดังนี้
Array
(
[crypto] => Array
(
[protocol] => TLSv1.2
[cipher_name] => ECDHE-RSA-AES128-GCM-SHA256
[cipher_bits] => 128
[cipher_version] => TLSv1.2
)
[timed_out] =>
[blocked] => 1
[eof] =>
[wrapper_data] => Array
(
[0] => HTTP/1.1 200 OK
[1] => Server: nginx
[2] => Date: Wed, 24 Apr 2019 07:17:13 GMT
[3] => Content-Type: text/html; charset=utf-8
[4] => Connection: close
[5] => Vary: Accept-Encoding
[6] => X-Powered-By: PHP/5.6.32
[7] => Set-Cookie: 245df287e958a4bbce7bd5f4c945de85=veej0je834tvt7oj2n6lgs3dg2; path=/; domain=.mindphp.com; secure; HttpOnly
[8] => Expires: Wed, 17 Aug 2005 00:00:00 GMT
[9] => Last-Modified: Tue, 23 Apr 2019 21:16:14 GMT
[10] => Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0, no-cache
[11] => Pragma: no-cache
[12] => ETag: "d254ef95c5079a100fb9da6effee4b08"
[13] => Vary: Accept-Encoding,User-Agent
)
[wrapper_type] => http
[stream_type] => tcp_socket/ssl
[mode] => r
[unread_bytes] => 7624
[seekable] =>
[uri] => https://mindphp.com
)
ผลลัพธ์จะเป็นรูปแบบ Array จะคืนค่าข้อมูลส่วนหัวทั้งหมดที่มีในหน้าเว็บนั้น เราสามารถความยาวอาเรย์ของ output ฟังก์ชัน stream_get_meta_data() ได้โดยการใช้ฟังก์ชัน sizeof($meta_data)
ครับ