php, curl, Kopf-und content-type
Ich bin mit einigen Schwierigkeiten die Arbeit mit curl und Header zurückgegeben, die von den Servern.
1) Meine php-Datei auf my_website.com/index.php sieht aus wie diese (getrimmte version):
<?php
$url = 'http://my_content_server.com/index.php';
//Open connection
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
echo $result;
?>
Die php-Datei auf my_content_server.com/index.php sieht wie folgt aus:
<?php
header("HTTP/1.0 404 Not Found - Archive Empty");
echo "Some content > 600 words to make chrome/IE happy......";
?>
Erwarte ich, dass, wenn ich besuchen my_website.com/index.php ich sollte ein 404, aber das ist nicht passiert.
Was mache ich falsch?
2) im Grunde, was ich erreichen möchte ist:
my_content_server.com/index.php entscheiden wird der content-type und senden Sie eine entsprechende überschrift, und my_website.com/index.php sollten, senden Sie einfach die gleichen content-type und andere Header (zusammen mit den aktuellen Daten) an den browser. Aber es scheint, dass my_website.com/index.php ist schreiben eine eigene Header? (Oder vielleicht bin ich nicht zu verstehen, die arbeiten korrekt).
Grüße,
JP
header('HTTP/1.0 404 Not Found - Archive Empty'); exit;
- ^ Hinweis die
exit
- Tut beenden egal ob es sich um die Letzte Anweisung? (Ich denke ich darf zum echo nach senden 404-header?).
- ich denke, u versuchen, die Rückkehr der header von my_content_server.com/index.php?
... ob_start(); $header = obj_get_contents()// your header; ob_end_clean(); header($header); echo "additional message";
und verwenden Sie diecurl_setopt($ch,CURLOPT_HEADER,true);
vorgeschlagen von @stillstanding - Ja, Sie können echo alles nach 404. Viele nette 404-Seiten sind auf diese Weise durchgeführt.
- Verwandte: stackoverflow.com/questions/9183178/...
- Sollten Sie den response-code mit php.net/manual/en/function.http-response-code.php
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfügen vor
curl_exec()
:Statt nur
echo
'ing, das Ergebnis vor der Header an den client als auch: