Note that this function only registers a single callback as of php 5.4. The most recent callback set is the one that will be executed, they will not be executed in order like with register_shutdown_function(), just overwritten.
Here is my test:
<?php
$i = $j = 0;
header_register_callback(function() use(&$i){ $i+=2; });
header_register_callback(function() use(&$i){ $i+=3; });
register_shutdown_function(function() use(&$j){ $j+=2; });
register_shutdown_function(function() use(&$j){ $j+=3; });
register_shutdown_function(function() use(&$j){ var_dump($j); });
while(!headers_sent()) { echo "<!-- ... flushing ... -->"; }
var_dump(headers_sent(), $i);
exit;
?>
Results:
headers_sent() - true
$i = 3
$j = 5header_register_callback
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
header_register_callback
Референца за `function.header-register-callback.php` со подобрена типографија и навигација.
header_register_callback
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
header_register_callback — Повикај функција за заглавје
= NULL
Регистрира функција што ќе биде повикана кога PHP ќе почне да испраќа излез.
На callback се извршува веднаш откако PHP ќе ги подготви сите заглавја за испраќање, и пред да се испрати каков било друг излез, создавајќи прозорец за манипулирање со излезните заглавја пред да бидат испратени.
Параметри
callback-
Функција повикана непосредно пред да се испратат заглавјата. Не прима параметри и вратената вредност се игнорира.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.
Примери
Пример #1 header_register_callback() example
<?php
header('Content-Type: text/plain');
header('X-Test: foo');
function foo() {
foreach (headers_list() as $header) {
if (strpos($header, 'X-Powered-By:') !== false) {
header_remove('X-Powered-By');
}
header_remove('X-Test');
}
}
$result = header_register_callback('foo');
echo "a";
?>Горниот пример ќе прикаже нешто слично на:
Content-Type: text/plain a
Белешки
header_register_callback() се извршува токму кога заглавјата се подготвуваат за испраќање, така што секој излез од оваа функција може да го прекине излезот.
Забелешка:
Заглавијата ќе бидат достапни и прикажани само кога се користи SAPI што ги поддржува.
Види Исто така
- headers_list() Делот за
- header_remove() - Враќа листа на заглавија за одговор испратени (или подготвени за испраќање)
- header() се изведуваат по редослед на повикување.