Sind alle in $_SERVER
gespeichert? Sogar benutzerdefinierte?Wie kann ich PHP dazu bringen, die Header anzuzeigen, die es von einem Browser erhalten hat?
Antwort
Jedes HTTP-Anforderungsheaderfeld befindet sich in $_SERVER
(außer Cookie
) und der Schlüssel beginnt mit HTTP_
. Wenn Sie Apache verwenden, können Sie auch versuchen, apache_request_headers
.
Versuchen Sie, diese
print_r
($ _SERVER)
Es alles innerhalb des Arrays
Wenn Sie etwas spezifischeres verwenden möchten: ' Php print_r ($ _ SERVER [URL])?>' – LeRoy
Blick auf die $_SERVER Variablenliste zu sehen, was es enthält. Die verlinkte Manualseite hat viele nützliche Informationen, aber auch einfach eine var_dump
darauf, um zu sehen, was tatsächlich drin ist. Viele der Einträge werden oder werden nicht ausgefüllt, je nachdem, was der Client vorhat, und seltsame Eigenarten von PHP. Betrachtet man den auf meinem lokalen Server, gibt es auch einen $ _SERVER ["ALL_HTTP"] Eintrag, der sie alle nur als String auflistet, aber anscheinend ist das kein Standard, da er nicht auf der Manpage aufgeführt ist.
können Sie getallheaders()
verwenden, um ein Array aller gesendeten HTTP-Header zu erhalten.
$headers = getallheaders();
foreach($headers as $key=>$val){
echo $key . ': ' . $val . '<br>';
}
können Sie einfach apache_request_headers()
oder seinen Alias getallheaders()
verwenden.
Verbrauch: echo json_encode(getallheaders());
Wenn obige Funktion nicht existiert (alte PHP oder nginx) können Sie diese als Ausweich verwenden:
<?php
if (!function_exists('getallheaders')){
function getallheaders() {
$headers = '';
foreach ($_SERVER as $name => $value) {
if (substr($name, 0, 5) == 'HTTP_') {
$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
}
}
return $headers;
}
}
?>
Sie verwenden apache_request_header können(); kann Ihnen vielleicht helfen.
$headers = apache_request_headers();
foreach ($headers as $header => $value) {
echo "<pre>";
echo "$header : $value";
echo "</pre>";
}
- 1. Wie kann ich Safari dazu bringen, eine CSV-Datei herunterzuladen, anstatt sie im Browser anzuzeigen?
- 2. Wie kann ich Management Studio 2005 dazu bringen, die Header aus Ergebnismengen zu kopieren?
- 3. Gibt es eine Möglichkeit, MySQL dazu zu bringen, die von einem INSERT-Befehl erzeugte Zeile zurückzugeben?
- 4. Wie kann ich LWP dazu bringen, SSL-Serverzertifikate zu validieren?
- 5. Kann ich numpy.histogram dazu bringen, sich wie numpy.bincount zu verhalten?
- 6. Wie kann ich Hibernate dazu bringen, Kommentare in die Tabellen/Felder zu schreiben, die er erstellt
- 7. Wie kann ich Leute dazu bringen, mein Framework zu testen?
- 8. Kann ich libc (GLIBC_2.13) dazu bringen, ein Symbol zu laden, das es nicht hat (aus GLIBC_2.15)?
- 9. Wie kann ich WCF dazu bringen, Verbindungen automatisch zu schließen?
- 10. Kann ich mod_deflate & PHP dazu bringen, die Komprimierung nur für ein Verzeichnis zu überspringen?
- 11. Wie kann ich StackPanel dazu bringen, ein ItemTemplate zu verwenden?
- 12. Wie kann ich den nanoc SASS-Filter dazu bringen, die SCSS-Syntax zu verwenden?
- 13. Wie kann ich Go dazu bringen, ein selbstsigniertes Zertifikat für die TLS-Client-Authentifizierung zu akzeptieren?
- 14. Wie kann ich die CodeClimate CLI dazu bringen, mehr Details auszugeben?
- 15. Wie kann ich meine ngResource dazu bringen, benutzerdefinierte Header zu akzeptieren?
- 16. Wie kann ich PyCharm dazu bringen, statische Dateien zu erkennen?
- 17. Wie kann ich den Entity Framework Type Provider dazu bringen, die Runtime-Konfigurationsdatei zu verwenden?
- 18. Wie verbinde ich mich mit einer Website über die Header, die der Browser gesendet hat?
- 19. Wie kann ich die Jenkins API dazu bringen, mehr Builds zurückzugeben?
- 20. Kann ich Gradle dazu bringen, nur benötigte Abhängigkeiten einzuziehen?
- 21. Wie kann ich Jenkins Gerrit Trigger dazu bringen, die Commits meines CI-Benutzers zu ignorieren?
- 22. Wie kann ich GDB dazu bringen, mir mitzuteilen, welche Adresse einen Fehler verursacht hat?
- 23. Kann ich die Codezeile erhalten, die eine Ausnahme verursacht hat?
- 24. Wie kann ich Boto dazu bringen, signierte URLs für S3 zu generieren, die Downloads auslösen?
- 25. Wie kann ich autlogic dazu bringen, die Rails-Sitzung anstelle eines eigenen Cookies zu verwenden?
- 26. Wie kann ich Skyfield dazu bringen, dem nautischen Almanach für die Neigung der Sonne zuzustimmen?
- 27. Wie kann ich die Drive API dazu bringen, eine Beschreibung der Datei zu drucken?
- 28. Wie kann ich die Browser-Version über piwik verfolgen?
- 29. Warum entgeht mein Angular HTML, und wie kann ich es dazu bringen, vertrauenswürdige Rohdaten zu übergeben?
- 30. GDB wird dazu gebracht, die Gesamtheit der mehrzeiligen Anweisungen anzuzeigen
Was ist dann mit Cookie-Informationen? Können wir $ _COOKIE [] benutzen, um sie zu holen? –
@dskanth Ja, '$ _COOKIE' enthält die bereits geparsten Cookies, die vom Client gesendet wurden. Aber es wird kein '$ _SERVER ['HTTP_COOKIE']' 'geben. – Gumbo
@Gumbo, Wie ist dieses diff von 'getallheaders'? Gibt es einige Header, die für Letzteres abgestreift werden? – Pacerier