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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
แนะนำการเดินทางและสถานที่ท่องเที่ยวในจังหวัดตรังและการเดินทางไปกรุงเทพ
โดย wightfall จ 22 เม.ย. 2024 3:41 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
20
จ 22 เม.ย. 2024 3:41 pm โดย wightfall View Topic แนะนำการเดินทางและสถานที่ท่องเที่ยวในจังหวัดตรังและการเดินทางไปกรุงเทพ
ติดตั้ง ESXi ใหม่ จำเป็นต้อง Format Harddisk ก่อนติดตั้งไหมครับ
โดย จิ๊กโก๋ ส 20 เม.ย. 2024 2:29 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
3
145
อ 23 เม.ย. 2024 2:24 pm โดย mindphp View Topic ติดตั้ง ESXi ใหม่ จำเป็นต้อง Format Harddisk ก่อนติดตั้งไหมครับ
แจ้งปัญหาโพสบทความลงในเว็บบอร์ดส่วนตัวไม่ได้
โดย internTk21 ศ 19 เม.ย. 2024 11:56 am บอร์ด MindPHP News & Feedback
1
46
ศ 19 เม.ย. 2024 12:15 pm โดย internTk21 View Topic แจ้งปัญหาโพสบทความลงในเว็บบอร์ดส่วนตัวไม่ได้
สอบถาม Google Structure ที่เหมาะกับคอร์สเรียนควรใช้แบบไหนดีค่ะ
โดย eange08 ศ 19 เม.ย. 2024 9:56 am บอร์ด Programming - PHP
1
80
ศ 19 เม.ย. 2024 10:28 am โดย mindphp View Topic สอบถาม Google Structure ที่เหมาะกับคอร์สเรียนควรใช้แบบไหนดีค่ะ
คำสั่งรวมไฟล์ และ บีบอัดในคำสั่งเดียว tar, zip
โดย mindphp พ 17 เม.ย. 2024 7:42 pm บอร์ด Linux - Web Server
0
123
พ 17 เม.ย. 2024 7:42 pm โดย mindphp View Topic คำสั่งรวมไฟล์ และ บีบอัดในคำสั่งเดียว  tar, zip
เช็คขนาดพื้นที่ฐานข้อมูล แต่ละก้อน แต่ละฐานข้อมูลว่าใช้พื้นที่ไปเท่าไหร่ ด้วย Comamnd Line
โดย mindphp จ 15 เม.ย. 2024 11:10 pm บอร์ด PostgreSQL
1
299
จ 15 เม.ย. 2024 11:14 pm โดย mindphp View Topic เช็คขนาดพื้นที่ฐานข้อมูล แต่ละก้อน แต่ละฐานข้อมูลว่าใช้พื้นที่ไปเท่าไหร่ ด้วย Comamnd Line
การติดตั้ง WSL เพื่อใช้งาน Linux Terminal บน Windows
โดย tsukasaz ศ 12 เม.ย. 2024 2:25 pm บอร์ด Share Knowledge
0
317
ศ 12 เม.ย. 2024 2:25 pm โดย tsukasaz View Topic การติดตั้ง WSL เพื่อใช้งาน Linux Terminal บน Windows
Super Сasual Dating - Real Women
โดย heroxbay ศ 12 เม.ย. 2024 8:55 am บอร์ด Microsoft Office Knowledge & line & Etc
0
259
ศ 12 เม.ย. 2024 8:55 am โดย heroxbay View Topic Super Сasual Dating - Real Women