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)  ครับ 

 

ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : ฟังก์ชัน PHP

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ดูแลเตียงผู้ป่วยอย่างไรให้คนที่บ้านอุ่นใจผู้ใช้ปลอดภัย
โดย mheimhei พฤ 21 ธ.ค. 2023 9:48 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
386
พฤ 21 ธ.ค. 2023 9:48 pm โดย mheimhei View Topic ดูแลเตียงผู้ป่วยอย่างไรให้คนที่บ้านอุ่นใจผู้ใช้ปลอดภัย
คำสั่งเปลี่ยน User เพื่อรันคำสั่งบน Linux Ubuntu
โดย mindphp พ 20 ธ.ค. 2023 4:01 am บอร์ด Linux - Web Server
0
358
พ 20 ธ.ค. 2023 4:01 am โดย mindphp View Topic คำสั่งเปลี่ยน User เพื่อรันคำสั่งบน Linux Ubuntu
โหลดเอกสารแล้วเหมือนถูก blocked แก้ยังไงคะ
โดย Narisara อ 19 ธ.ค. 2023 10:52 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
306
พฤ 21 ธ.ค. 2023 12:59 pm โดย mindphp View Topic โหลดเอกสารแล้วเหมือนถูก blocked แก้ยังไงคะ
มี software ไหนสามารถมาใช้แทน vmware ได้บ้างครับ ที่เป็นแบบ free หรือ license ไม่แพง
โดย Anonymous จ 18 ธ.ค. 2023 4:00 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
492
จ 18 ธ.ค. 2023 4:14 pm โดย mindphp View Topic มี software ไหนสามารถมาใช้แทน vmware ได้บ้างครับ ที่เป็นแบบ free หรือ license ไม่แพง
สอบถามวิธีเช็คสิทธ์ การเข้าชมกระทู้ และการตอบกลับกระทู้ ใน phpBB
โดย flook จ 18 ธ.ค. 2023 1:10 pm บอร์ด สอบถามปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
3
781
ศ 22 ธ.ค. 2023 4:27 pm โดย flook View Topic สอบถามวิธีเช็คสิทธ์ การเข้าชมกระทู้ และการตอบกลับกระทู้ ใน phpBB
สอบถามฟิลด์ price lists ในหน้าตะกร้าสินค้า mooziicart
โดย Thanapoom1514 ศ 15 ธ.ค. 2023 12:26 pm บอร์ด Joomla Development
2
2890
ศ 15 ธ.ค. 2023 12:39 pm โดย Thanapoom1514 View Topic สอบถามฟิลด์ price lists ในหน้าตะกร้าสินค้า mooziicart
อัปเดตระบบการรักษาความปลอดภัยใหม่ของ Joomla 5.0.1 และ 4.4.1 เวอร์ชันล่าสุด
โดย Thanapoom1514 พฤ 14 ธ.ค. 2023 5:59 pm บอร์ด MindPHP News & Feedback
0
331
พฤ 14 ธ.ค. 2023 5:59 pm โดย Thanapoom1514 View Topic อัปเดตระบบการรักษาความปลอดภัยใหม่ของ Joomla 5.0.1 และ 4.4.1 เวอร์ชันล่าสุด
สอบถามปุ่มเลือกเอกสารกดแล้วมันไม่ขึ้น modal ในหน้าเพิ่มเมนู joomla 5 ครับ
โดย Thanapoom1514 พฤ 14 ธ.ค. 2023 11:45 am บอร์ด Joomla Development
2
2408
อ 19 ธ.ค. 2023 7:53 pm โดย Thanapoom1514 View Topic สอบถามปุ่มเลือกเอกสารกดแล้วมันไม่ขึ้น modal ในหน้าเพิ่มเมนู joomla 5 ครับ