কীভাবে আমি পিএইচপি-তে কোনও অনুরোধ শিরোনাম পড়তে পারি


271

পিএইচপি-তে আমার কোনও শিরোনাম কীভাবে পড়া উচিত?

কাস্টম হেডার উদাহরণস্বরূপ: X-Requested-With

উত্তর:


345

IF : আপনার কেবলমাত্র একটি একক শিরোলেখ প্রয়োজন, সমস্ত শিরোনামের পরিবর্তে , দ্রুত পদ্ধতিটি হ'ল:

<?php
// Replace XXXXXX_XXXX with the name of the header you need in UPPERCASE (and with '-' replaced by '_')
$headerStringValue = $_SERVER['HTTP_XXXXXX_XXXX'];


ELSE IF : আপনি অ্যাপাচি মডিউল হিসাবে বা পিএইচপি 5.4 হিসাবে, ফাস্টসিজিআই (সাধারণ পদ্ধতি) ব্যবহার করে চালান:

apache_request_headers ()

<?php
$headers = apache_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}


ELSE: অন্য যে কোনও ক্ষেত্রে, আপনি (ইউজারল্যান্ড বাস্তবায়ন) ব্যবহার করতে পারেন:

<?php
function getRequestHeaders() {
    $headers = array();
    foreach($_SERVER as $key => $value) {
        if (substr($key, 0, 5) <> 'HTTP_') {
            continue;
        }
        $header = str_replace(' ', '-', ucwords(str_replace('_', ' ', strtolower(substr($key, 5)))));
        $headers[$header] = $value;
    }
    return $headers;
}

$headers = getRequestHeaders();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}


আরও দেখুন :
getallheaders () - (পিএইচপি> = 5.4) অ্যাপাচি_সেসপন্স_হেডারস () - এর ক্রস প্ল্যাটফর্ম সংস্করণ আলিয়াস - সমস্ত এইচটিটিপি প্রতিক্রিয়া শিরোনাম আনুন। শিরোলেখ_ তালিকা () - প্রেরণের জন্য শিরোনামের একটি তালিকা আনুন।apache_request_headers()


3
আমি ধরে নিয়েছি এটি কেবলমাত্র অ্যাপাচি সার্ভার ব্যবহার করার সময় ... ওপিকে এটি জানাতে হতে পারে :)
অ্যালেক্স

12
আমি অপেশাদারদের সম্পর্কে 82% যত্ন করি না। আমি পেশাদার ইনস্টলেশন সম্পর্কে যত্নশীল। মনের অধিকারে থাকা কেউই মোড_এফপি-তে হাই ট্র্যাফিক সাইট চালানোর চেষ্টা করবে না।
ভের্টেক

11
@ জ্যাকো হ্যাঁ, এবং আমি মনে করি এটি ডাউনভোটিংয়ের জন্য নিখুঁত কারণ তৈরি করে। যে কোনও সময়ে সেরা উত্তরটি উত্তোলন করা উচিত এবং খারাপ উত্তরগুলি ডাউনভোট হওয়া উচিত। এটি historicalতিহাসিক সমাধানগুলির সাইট নয় :-)
টমাস জেনসেন

3
@ থমাস জেনসেন যদিও বিবেচনা করুন, কিছু অন্যান্য বা সমস্ত শিরোনামে ইন্টারেস্ট করা হতে পারে এবং 'HTTP_X_REQUESTED_WITH' তে প্রবন্ধে নয়; উত্তরটি একেবারে সঠিক এবং জ্যাকো স্পষ্টতই বলেছে যে এটি কেবল অ্যাপাচের জন্য কাজ করে; এটি কোনও কোনও পরিস্থিতিতে সেরা / সর্বাধিক পারফরম্যান্ট সলিউশন নয়, ডাউন আইভো আইএমওর কোনও কারণ নয়।
সেবাস্তিয়ান হফম্যান

1
@ পারণাইক্স এ: আপনি কী বলতে চাইছেন তা আমি জানি না, আমি উত্তরের পরিমাণের সমালোচনা করি নি এবং আপনার যুক্তি হ'ল কেন আমি নির্দিষ্ট প্রশ্নের উত্তর দিয়ে আমার উত্তরটি শুরু করেছি এবং আরও সাধারণ জ্ঞান এবং আরও তথ্যের জন্য লিঙ্কগুলি দিয়ে ব্যাখ্যা করেছি । বি: আমি এখনও মনে করি না আপনি অ্যাপাচি_রেকুস্ট_হেডারস () ব্যবহারের জন্য উত্সাহিত করা উচিত। এই প্রশ্নটি সন্ধানকারী নতুনরা এটি ব্যবহার শুরু করবে যা আরও ভাল ফাংশন উপস্থিত থাকলে লজ্জাজনক আইএমও।
থমাস জেনসেন

371
$_SERVER['HTTP_X_REQUESTED_WITH']

আরএফসি 3875 , 4.1.18:

HTTP_ব্যবহৃত প্রোটোকল যদি এইচটিটিপি হয় তবে ক্লায়েন্টের অনুরোধ শিরোনাম ক্ষেত্রগুলি থেকে পাঠানো মানগুলি সহ নামের সাথে শুরু হওয়া মেটা-ভেরিয়েবলগুলি । এইচটিটিপি শিরোলেখের ক্ষেত্রের নামটি বড় হাতের অক্ষরে রূপান্তরিত হয়, এর -সাথে প্রতিস্থাপনের সমস্ত উপস্থিতি রয়েছে _এবং HTTP_মেটা-ভেরিয়েবলের নাম দিতে প্রস্তুত রয়েছে।


6
আমি কি কোনও সার্ভারকে নির্ভর করতে পারি যে প্রতিটি শিরোনামটি $_SERVERভেরিয়েবলের মধ্যে রাখবে ? পিএইচপি ডকুমেন্টেশন php.net/manual/en/reided.variables.server.php এ আমরা কী হবে তা নিশ্চিত হতে পারি সে সম্পর্কে ক্ষোভজনক
মার্ক আমেরিকা

4
এটি (সর্বদা) কাজ করবে না, বিশেষত পিএইচপি-এফপিএম (বা সিজিআই) এ। এই শিরোনামটি সর্বদা পিএইচপি-র মধ্যে থেকে পাওয়া যায় না।
গ্লেন প্লাস

এই সমাধানটি ব্যবহার করে আমি কেবল কয়েকটি অনুরোধ শিরোনাম দেখতে পাচ্ছি এবং এই ক্ষেত্রে আমি যা চাই তা আমি দেখতে পাচ্ছি না। ক্রোম একটি cache-controlশিরোনাম প্রেরণ করছে , তবে আমি এটি কোথাও দেখতে পাচ্ছি না $_SERVER। আমি দেখতে পাই HTTP_"HTTP_ACCEPT", এবং "HTTP_UPGRADE_INSECURE_REQUESTS" এবং "HTTP_USER_AGENT" (অন্য কয়েকজনের মধ্যে) সহ বেশ কয়েকটি শিরোনাম উপস্থাপিত। তবে "ক্যাশে-নিয়ন্ত্রণ" এর জন্য কিছুই "প্রগমা" এর জন্য কিছুই নয়। এটি কেস বা HTTP_উপসর্গ নির্বিশেষে । আমি কিছু অনুপস্থিত করছি?
ইভান দে লা ক্রুজ

@ ইভান্দেলা ক্রুজ: leserged.online.fr/phpinfo.php আমি এটি এখানে দেখছি:_SERVER["HTTP_CACHE_CONTROL"] max-age=0
কাসনসুই

হুঁ, ধন্যবাদ ... এটি আমার মোড়ক ডেভ সার্ভারে রয়েছে এবং আমি মনে করি পিএইচপি একটি অ্যাপাচি মডিউল হিসাবে চলছে তবে আমি নিশ্চিত নই। আমাকে এফপিএমের সাথে আমার প্রোড বক্সটি পরীক্ষা করতে দিন এবং আমি এখানে কেন এটি মোটাঘাতে দেখছি না তা বুঝতে পারি কিনা তা দেখতে দিন ...
ইভান দে লা ক্রুজ

48

আপনার সমস্ত HTTP শিরোনামগুলি $_SERVERগ্লোবাল ভেরিয়েবলের উপরিভাগযুক্ত HTTP_এবং ড্যাশ (-) দ্বারা আন্ডারস্কোর (_) দ্বারা প্রতিস্থাপিত পাওয়া উচিত।

উদাহরণস্বরূপ আপনার X-Requested-Withপাওয়া যাবে:

$_SERVER['HTTP_X_REQUESTED_WITH']

$_SERVERভেরিয়েবল থেকে একটি এসোসিয়েটিভ অ্যারে তৈরি করা সুবিধাজনক হতে পারে । এটি বেশ কয়েকটি শৈলীতে করা যেতে পারে, তবে এখানে একটি ফাংশন রয়েছে যা উটচাপা কীগুলি আউটপুট করে:

$headers = array();
foreach ($_SERVER as $key => $value) {
    if (strpos($key, 'HTTP_') === 0) {
        $headers[str_replace(' ', '', ucwords(str_replace('_', ' ', strtolower(substr($key, 5)))))] = $value;
    }
}

এখন কেবল $headers['XRequestedWith']পছন্দসই শিরোনামটি পুনরুদ্ধার করতে ব্যবহার করুন ।

পিএইচপি ম্যানুয়াল $_SERVER: http://php.net/manual/en/reided.variables.server.php এ


3
আমার মতে সেরা উত্তর, কোমসনয়ের শেষ ফলাফলের সাথে থমাসের ব্যাখ্যা। একটি সহযোগী অ্যারে সাধারণত যা প্রয়োজন তা হয় না এবং parseRequestHeaders()ফাংশনটি পড়া থেকে সহজ সমাধানটি বের করা খুব সহজ নয় । যদি এই জাতীয় কোনও অ্যা্যাসোসিয়েটিভ অ্যারের প্রয়োজন হয়, তবে আইএমও অ্যাপাচি ফাংশন হ'ল সর্বোত্তম বিকল্প, কারণ এটি ম্যাংলেড ক্যামেলকেস সংস্করণের পরিবর্তে হুবহু শিরোনাম প্রদান করে। (আরও মনে রাখবেন যে পিএইচপি ৫.৪ হিসাবে এটি আর কেবল অ্যাপাচি-আর নেই।)
ব্রিলিয়ানড

আপনি যদি এই 2 বছর 11 মাস দ্রুত উত্তর দিয়ে থাকেন তবে এই উত্তরে 200+ আপগেট থাকবে।
DividedByZero

apache_request_headers()বা getallheaders()যখন আমি পরীক্ষা করেছি তখন শিরোনামের নামগুলি বড় করে দেখায় না। ক্লায়েন্টের পাশ দিয়ে যাবার সাথে সাথে তারা ঠিক ফিরে আসছে। তারপরে আপনি কেন এমন প্রতিস্থাপন ফাংশনে শিরোনামের নামগুলি মূলধন করছেন?
রিনিজ

22

পিএইচপি 5.4.0 থেকে আপনি getallheadersফাংশনটি ব্যবহার করতে পারেন যা সমস্ত অনুরোধ শিরোনামকে সহযোগী অ্যারে হিসাবে ফিরিয়ে দেয়:

var_dump(getallheaders());

// array(8) {
//   ["Accept"]=>
//   string(63) "text/html[...]"
//   ["Accept-Charset"]=>
//   string(31) "ISSO-8859-1[...]"
//   ["Accept-Encoding"]=>
//   string(17) "gzip,deflate,sdch"
//   ["Accept-Language"]=>
//   string(14) "en-US,en;q=0.8"
//   ["Cache-Control"]=>
//   string(9) "max-age=0"
//   ["Connection"]=>
//   string(10) "keep-alive"
//   ["Host"]=>
//   string(9) "localhost"
//   ["User-Agent"]=>
//   string(108) "Mozilla/5.0 (Windows NT 6.1; WOW64) [...]"
// }

এর আগে এই ফাংশনটি তখনই কাজ করেছিল যখন পিএইচপি অ্যাপাচি / এনএসএপিআই মডিউল হিসাবে চলছিল।


20
আমি এটি পিএইচপি-এফপিএম 5.5 এবং এনজিআইএনএক্স ব্যবহার করছি। getallheaders () বিদ্যমান নেই।
সিএমসিডিগ্রাগনকাই

FPM- এ সিএমসিডিগ্রাঙ্কাই কীভাবে আপনি শিরোনামের তথ্য পেলেন?
অজিত সিং

5

strtolowerপ্রস্তাবিত বেশ কয়েকটি সমাধানের অভাব রয়েছে, আরএফসি 2616 (HTTP / 1.1) শিরোনাম ক্ষেত্রকে কেস-সংবেদনশীল সত্তা হিসাবে সংজ্ঞায়িত করে। পুরো জিনিসটি, কেবল মান অংশ নয়।

সুতরাং শুধুমাত্র HTTP_ এন্ট্রি পার্স করার মতো পরামর্শগুলি ভুল।

এর চেয়ে ভাল হবে:

if (!function_exists('getallheaders')) {
    foreach ($_SERVER as $name => $value) {
        /* RFC2616 (HTTP/1.1) defines header fields as case-insensitive entities. */
        if (strtolower(substr($name, 0, 5)) == 'http_') {
            $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
        }
    }
    $this->request_headers = $headers;
} else {
    $this->request_headers = getallheaders();
}

পূর্ববর্তী পরামর্শ সহ সূক্ষ্ম পার্থক্য লক্ষ্য করুন। এখানে ফাংশনটি php-fpm (+ nginx) এও কাজ করে।


1
আরএফসি 2616 ঠিক কোথায় ক্ষেত্রের মানগুলি সংবেদনশীল না তা জানিয়েছে? এটি স্পষ্টতই বলেছে যে "এইচটিটিপি-তারিখটি কেস সংবেদনশীল" - এবং এটি Dateশিরোনামে চলে যায় - এবং "প্যারামিটার মানগুলি [সেমিকোলনের পরে বিষয়বস্তুর ধরণের পাঠ্য] কেস-সংবেদনশীল হতে পারে বা নাও হতে পারে"। সুতরাং কেস-সংবেদনশীল মান সহ কমপক্ষে দু'টি শিরোলেখ দেওয়া আছে বলে মনে হয় আপনি ভুল হয়ে গেছেন।
জোকার_ভিডি

HTTP header fields, which include general-header (section 4.5), request-header (section 5.3), response-header (section 6.2), and entity-header (section 7.1) fields, follow the same generic format as that given in Section 3.1 of RFC 822 [9]. Each header field consists of a name followed by a colon (":") and the field value. Field names are case-insensitive. সুতরাং আমি অনুমান করি আপনি ভুল বলেছেন।
গ্লেন প্লাস

4
ক্ষেত্রের নামগুলি কেস-সংবেদনশীল। এই অনুচ্ছেদে ক্ষেত্রের মানগুলি সম্পর্কে কিছুই নেই , যখন নথির অন্যান্য অংশগুলি স্পষ্টভাবে কেস-সংবেদনশীল ক্ষেত্রের মানগুলি সম্পর্কে বলে।
জোকার_ভিডি

1
কেন আপনি সমস্ত স্থানকে আন্ডারলাইন প্রতিস্থাপন করে তারপরে স্থান ড্যাশ করবেন? এটি কেবল কাজ করবে না: ers শিরোলেখ [ucwords (স্ট্র্টলওয়ার (সাবস্ট্রি ($ নাম, 5)))] = $ মান; ?
টেমিরবিক

5

forলুপ ব্যবহার না করে এর মান পেতে এই ফাংশনে একটি শিরোনামের নামটি দিন । শিরোনাম পাওয়া না গেলে নাল ফেরায়।

/**
 * @var string $headerName case insensitive header name
 *
 * @return string|null header value or null if not found
 */
function get_header($headerName)
{
    $headers = getallheaders();
    return isset($headerName) ? $headers[$headerName] : null;
}

দ্রষ্টব্য: এটি কেবল অ্যাপাচি সার্ভারের সাথে কাজ করে, দেখুন: http://php.net/manual/en/function.getallheaders.php

দ্রষ্টব্য: এই ফাংশনটি সমস্ত শিরোলেখকে মেমোরিতে প্রসেস ও লোড করবে এবং এটি forলুপের চেয়ে কম পারফরম্যান্স ।


ফাংশন ত্রুটি আছে, প্রতিস্থাপন $ pHeaderKey করতে $ headerKey
Tegos

4

জিনিসগুলি সহজ করে তোলার জন্য, এখানে আপনি কীভাবে চান তা পেতে পারেন:

সরল:

$headerValue = $_SERVER['HTTP_X_REQUESTED_WITH'];

বা আপনার যখন একবারে একটি পেতে হবে:

<?php
/**
 * @param $pHeaderKey
 * @return mixed
 */
function get_header( $pHeaderKey )
{
    // Expanded for clarity.
    $headerKey = str_replace('-', '_', $pHeaderKey);
    $headerKey = strtoupper($headerKey);
    $headerValue = NULL;
    // Uncomment the if when you do not want to throw an undefined index error.
    // I leave it out because I like my app to tell me when it can't find something I expect.
    //if ( array_key_exists($headerKey, $_SERVER) ) {
    $headerValue = $_SERVER[ $headerKey ];
    //}
    return $headerValue;
}
// X-Requested-With mainly used to identify Ajax requests. Most JavaScript frameworks
// send this header with value of XMLHttpRequest, so this will not always be present.
$header_x_requested_with = get_header( 'X-Requested-With' );

অন্যান্য শিরোনামগুলি সুপার গ্লোবাল অ্যারে are _SERVER এও রয়েছে, আপনি সেগুলি এখানে কীভাবে পাবেন সে সম্পর্কে আপনি এখানে পড়তে পারেন: http://php.net/manual/en/reided.variables.server.php


অন্যান্য উত্তরের সাথে তুলনা করে দেখে মনে হচ্ছে যে আপনি ফাংশনটি কাজ করবে না কারণ এটি HTTP_$headerKey
প্রিপেন্ড

3

আমি কোডআইগনিটার ব্যবহার করছিলাম এবং এটি পেতে নীচের কোডটি ব্যবহার করেছি। ভবিষ্যতে কারও কাজে লাগতে পারে।

$this->input->get_request_header('X-Requested-With');

ইহা ছিল. Get_request_header () পদ্ধতি সম্পর্কে জানা থাকলেও আমি নিশ্চিত নই যে আমি শিরোনামের নামটি যেমন ব্যবহার করতে পারি, অর্থাত্ হাইফেনগুলি আন্ডারস্কোরে পরিবর্তন না করেই করতে পারি।
ভাল্কে

এটা খুশী হয়েছে। চিয়ার্স।
রাজেশ

1

আমি এটি কিভাবে করছি তা এখানে। যদি $ শিরোনাম_নাম পাস না করা হয় তবে আপনার সমস্ত শিরোনাম পাওয়া দরকার:

<?php
function getHeaders($header_name=null)
{
    $keys=array_keys($_SERVER);

    if(is_null($header_name)) {
            $headers=preg_grep("/^HTTP_(.*)/si", $keys);
    } else {
            $header_name_safe=str_replace("-", "_", strtoupper(preg_quote($header_name)));
            $headers=preg_grep("/^HTTP_${header_name_safe}$/si", $keys);
    }

    foreach($headers as $header) {
            if(is_null($header_name)){
                    $headervals[substr($header, 5)]=$_SERVER[$header];
            } else {
                    return $_SERVER[$header];
            }
    }

    return $headervals;
}
print_r(getHeaders());
echo "\n\n".getHeaders("Accept-Language");
?>

অন্যান্য উত্তরগুলিতে প্রদত্ত বেশিরভাগ উদাহরণের চেয়ে এটি আমার কাছে অনেক সহজ দেখাচ্ছে। এটি পদ্ধতিটি (জিইটি / পোষ্ট / ইত্যাদি )ও পায় এবং ইউআরআই অনুরোধ করে সমস্ত শিরোলেখ প্রাপ্ত করার সময় যা আপনি যদি লগিনে এটি ব্যবহার করার চেষ্টা করছেন তবে দরকারী হতে পারে।

এখানে ফলাফল:

Array ( [HOST] => 127.0.0.1 [USER_AGENT] => Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:28.0) Gecko/20100101 Firefox/28.0 [ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 [ACCEPT_LANGUAGE] => en-US,en;q=0.5 [ACCEPT_ENCODING] => gzip, deflate [COOKIE] => PHPSESSID=MySessionCookieHere [CONNECTION] => keep-alive )

en-US,en;q=0.5

0

এটি করার একটি সহজ উপায় এখানে।

// echo get_header('X-Requested-With');
function get_header($field) {
    $headers = headers_list();
    foreach ($headers as $header) {
        list($key, $value) = preg_split('/:\s*/', $header);
        if ($key == $field)
            return $value;
    }
}

যে শিরোনামগুলি পাঠানো হয় না?
সিএমসিডিগ্রাগনকাই

@ সিএমসিডিগ্রাগনকাই নং "শিরোনাম_লিস্ট () ব্রাউজার / ক্লায়েন্টকে প্রেরণের জন্য শিরোনামগুলির একটি তালিকা ফিরিয়ে দেবে" - php.net/manual/en/function.headers-list.php
কেহর

2
হ্যাঁ। যে আমি বোঝানো কি.
সিএমসিডিগ্রাগনকাই

1
প্রশ্নটি সার্ভারে প্রেরিত শিরোনামগুলির জন্য জিজ্ঞাসা করছে। তারা অনুরোধ শিরোনাম।
সিএমসিডিগ্রাগনকাই

1
উত্স এবং গন্তব্য, "প্রেরিত", "আউট", "থেকে", "থেকে" এর মতো পদ ব্যবহার করার সময় সেই শর্তাদি ব্যবহৃত হয় সেই প্রসঙ্গে। এই উত্তরে উদাহরণটি সার্ভারে পিএইচপি চলমান দেখায় । এবং, ওপি-র প্রশ্নটি সার্ভার-সাইড পিএইচপিও রেফারেন্স করেছে। সুতরাং, @CMCDragonkai এবং মাইকেললেনি সঠিক any এটি একটি খারাপ উত্তর। "প্রেরণিত", এই প্রসঙ্গে, এর অর্থ "সার্ভার থেকে প্রেরিত HTTP প্রতিক্রিয়া শিরোনাম"। কেহররা ক্লায়েন্টের দৃষ্টিকোণ থেকে মন্তব্য করছেন, তবে তার উত্তর এবং ওপি-র প্রশ্ন উভয়ই সার্ভারের দৃষ্টিকোণ থেকে।
ইভান দে লা ক্রুজ

0

এই ছোট পিএইচপি স্নিপেট আপনার জন্য সহায়ক হতে পারে:

<?php
foreach($_SERVER as $key => $value){
echo '$_SERVER["'.$key.'"] = '.$value."<br />";
}
?>

0
function getCustomHeaders()
{
    $headers = array();
    foreach($_SERVER as $key => $value)
    {
        if(preg_match("/^HTTP_X_/", $key))
            $headers[$key] = $value;
    }
    return $headers;
}

আমি কাস্টম হেডারগুলি পেতে এই ফাংশনটি ব্যবহার করি, যদি শিরোনামটি "HTTP_X_" থেকে শুরু হয় তবে আমরা অ্যারেতে চাপছি :)


0

যদি কেবল একটি কী পুনরুদ্ধার "Host"করা প্রয়োজন, উদাহরণস্বরূপ ঠিকানা প্রয়োজন, তবে আমরা ব্যবহার করতে পারি

apache_request_headers()['Host']

যাতে আমরা লুপগুলি এড়াতে পারি এবং এটিকে প্রতিধ্বনির ফলাফলগুলিতে ইনলাইন রাখতে পারি


পিএইচপি 5.4 দিয়ে শুরু হচ্ছে। 5.3 এ, এই সিনট্যাক্সের ফলে ত্রুটি ঘটবে।
রবিন কে

এটি পিএইচপি 7.1
ডিকেন্স এএস

0

পিএইচপি 7: নাল কোলেসেস অপারেটর

//$http = 'SCRIPT_NAME';
$http = 'X_REQUESTED_WITH';
$http = strtoupper($http);
$header = $_SERVER['HTTP_'.$http] ?? $_SERVER[$http] ?? NULL;

if(is_null($header)){
    die($http. ' Not Found');
}
echo $header;

-1

আপনার যদি অ্যাপাচি সার্ভার থাকে তবে এটি কাজ করে

পিএইচপি কোড:

$headers = apache_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}

ফলাফল:

Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0
Host: www.example.com
Connection: Keep-Alive
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.