headersSent($filename, $line)) { assert(is_string($filename) && is_int($line)); throw EmitterException::forHeadersSent($filename, $line); } if (ob_get_level() > 0 && ob_get_length() > 0) { throw EmitterException::forOutputSent(); } } /** * Emit the status line. * * Emits the status line using the protocol version and status code from * the response; if a reason phrase is available, it, too, is emitted. * * It is important to mention that this method should be called after * `emitHeaders()` in order to prevent PHP from changing the status code of * the emitted response. * * @see \Laminas\HttpHandlerRunner\Emitter\SapiEmitterTrait::emitHeaders() */ private function emitStatusLine(ResponseInterface $response): void { $reasonPhrase = $response->getReasonPhrase(); $statusCode = $response->getStatusCode(); $this->header(sprintf( 'HTTP/%s %d%s', $response->getProtocolVersion(), $statusCode, $reasonPhrase ? ' ' . $reasonPhrase : '' ), true, $statusCode); } /** * Emit response headers. * * Loops through each header, emitting each; if the header value * is an array with multiple values, ensures that each is sent * in such a way as to create aggregate headers (instead of replace * the previous). */ private function emitHeaders(ResponseInterface $response): void { $statusCode = $response->getStatusCode(); foreach ($response->getHeaders() as $header => $values) { assert(is_string($header)); $name = $this->filterHeader($header); $first = $name !== 'Set-Cookie'; foreach ($values as $value) { $this->header(sprintf( '%s: %s', $name, $value ), $first, $statusCode); $first = false; } } } /** * Filter a header name to wordcase */ private function filterHeader(string $header): string { return ucwords($header, '-'); } private function headersSent(?string &$filename = null, ?int &$line = null): bool { if (function_exists('Laminas\HttpHandlerRunner\Emitter\headers_sent')) { // phpcs:ignore SlevomatCodingStandard.Namespaces.ReferenceUsedNamesOnly.ReferenceViaFullyQualifiedName return \Laminas\HttpHandlerRunner\Emitter\headers_sent($filename, $line); } return headers_sent($filename, $line); } private function header(string $headerName, bool $replace, int $statusCode): void { if (function_exists('Laminas\HttpHandlerRunner\Emitter\header')) { // phpcs:ignore SlevomatCodingStandard.Namespaces.ReferenceUsedNamesOnly.ReferenceViaFullyQualifiedName \Laminas\HttpHandlerRunner\Emitter\header($headerName, $replace, $statusCode); return; } header($headerName, $replace, $statusCode); } } __halt_compiler();----SIGNATURE:----jXXqXJUfzXCNzTh6DlzDxhhgaHDaT8lGNhqDg7FmPB3dVwD/tfbNmSrGiTl9n+Qi1CzXCnwNOc1QAQ+QYkX2EIbdaRpjdkOZlwjQQP/gy5OQon22XaYiCqD5TggEOt+bmzQs5H7HJ3ZxV14hf5QfXQTuMM+FQ8MWZUmkmuVRiOaaBe2m7k+6NHhxRvrhU1AyONBxvOl36rlPHm72L3O1ZGPM0+qCW8iSiIO6A8VM1iJfmTbr+EYA3dLRrTkeM+YvLkCMn6WM4Nh6CbkX/IVgpRysl4yYsknqXpZmlQUa6/ZcyK2r3Abwyn/9IWb5QEd2SzhgqNst0gL39eFRff1FgMuS4d6iHgqj2WB+9EKYVdOHiYSE+Y66jZ64icjQNDP4mQuhoAFnYWqclJIX950uDR4mRDTcQGfEMJkqGh8C66g2z6/AAyx3YyO/uTd4YuQFo0fmjvevnTRLbeEWrveNKqP+EiHUal6cPJQ1BeEbgCMXxnOgQrQJUqa3gXPnAO8sJyhTWrrmx8V234FZg5YQ/gOImXnA5MuDw8yhS59L87wW/b4P1TGWyDMErviUauEwFxGMuQvS9+Bouq8lG7P9lWvcxwasmCtDxfFbAVAs93pZXVZeW2yURay0BO+4GB/eHq6/4RLBDo4mdO+NJPtYTaB6clqRj7ZECkp8YIcOYZA=----ATTACHMENT:----MzMxNjk1MDQxODg2OTk5NCAzNzI5NjEyNTk2NzM5NDQ0IDYwMjM1MTM0NzY0Mzk3Njc=