33 lines
611 B
PHP
33 lines
611 B
PHP
|
<?php declare(strict_types = 1);
|
||
|
/**
|
||
|
* Abstract output class for HTTP headers.
|
||
|
*
|
||
|
* @package query-monitor
|
||
|
*/
|
||
|
|
||
|
abstract class QM_Output_Headers extends QM_Output {
|
||
|
|
||
|
/**
|
||
|
* @return void
|
||
|
*/
|
||
|
public function output() {
|
||
|
|
||
|
$id = $this->collector->id;
|
||
|
|
||
|
foreach ( $this->get_output() as $key => $value ) {
|
||
|
if ( ! is_scalar( $value ) ) {
|
||
|
$value = json_encode( $value );
|
||
|
}
|
||
|
|
||
|
# Remove illegal characters (Header may not contain NUL bytes)
|
||
|
if ( is_string( $value ) ) {
|
||
|
$value = str_replace( chr( 0 ), '', $value );
|
||
|
}
|
||
|
|
||
|
header( sprintf( 'X-QM-%s-%s: %s', $id, $key, $value ) );
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|