Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erläuterung des Beispielcodes für PHP-Eingabe- und Ausgabeströme (Bild)

Detaillierte Erläuterung des Beispielcodes für PHP-Eingabe- und Ausgabeströme (Bild)

黄舟
Freigeben: 2023-03-07 07:22:02
Original
1950 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich die Eingabe- und Ausgabeströme von php vorgestellt. Hier finden Sie eine Sammlung relevanter Informationen und einfacher Beispielcodes, auf die Sie sich beziehen können

Kürzlich studieren httpVereinbarung! Um das http-Protokoll besser zu verstehen, habe ich mir das http-Modul von nodejs angeschaut! Ich habe das Gefühl, dass ich ziemlich viel gewonnen habe. Zum Beispiel verwende ich eine HTTP-Anfrage, um eine Anfrage zu senden:

var options = {
 host: 'localhost',
 port: 80,
 path: '/backbone/data.php',
 method: 'POST'
};


var req = http.request(options, function(res) {
 console.log('STATUS: ' + res.statusCode);
 console.log('HEADERS: ' + JSON.stringify(res.headers));
 res.setEncoding('utf8');
 res.on('data', function (chunk) {
  console.log('BODY: ' + chunk);
 });
});
// write data to request body
req.end('name=liuzhang&age=28');
Nach dem Login kopieren

Der obige Code bedeutet, Daten „name=liuzhang&age=28“ zu senden, der Rückruf ist die Antwort Objekt und Der Server antwortet. Die Daten werden gedruckt!

data.php-Code ist

print_r($_POST);
Nach dem Login kopieren

druckt die übergebenen Daten! Das Ergebnis der Ausführung von

in der Befehlszeile ist

. Sie können sehen, dass Array leer ist , $_POST hat keine Daten. Zuerst dachte ich, die Daten würden nicht übertragen! Aber ich habe das Backend data.php in

echo file_get_contents("php://input");
Nach dem Login kopieren


geändert und die übergebenen Daten erhalten!

php://input ist ein schreibgeschützter Stream, der Zugriff auf die angeforderten Rohdaten bietet. Bei POST-Anfragen ist es besser, php://input anstelle von $HTTP_RAW_POST_DATA zu verwenden, da es nicht auf spezifischen php.ini-Anweisungen beruht. Außerdem wird in diesem Fall $HTTP_RAW_POST_DATA standardmäßig nicht aufgefüllt, was möglicherweise weniger Speicher erfordert als die Aktivierung von Always_populate_raw_post_data. Wenn enctype="multipart/form-data" verwendet wird, ist php://input ungültig.

$_POST kann nur abgerufen werden, wenn die Daten gemäß dem Typ application/x-www-form-urlencoded übermittelt werden. Das enctypeAttribut des Formulars ist die Codierungsmethode Verwendete: application/x-www-form-urlencoded und multipart/form-data, der Standardwert ist application/x-www-form-urlencoded. Wenn action get ist, verwendet der Browser die x-www-form-urlencoded-Codierung, um die Formulardaten in eine Zeichenfolge umzuwandeln (Name1=Wert1&Name2=Wert2...) und hängt diese Zeichenfolge dann an Nach der URL an , teilen Sie es mit ?, um diese neue URL zu laden. Wenn die Aktion „Post“ ist, kapselt der Browser die Formulardaten in den http-Body und sendet sie dann an den Server.

Wenn wir die Sendeoptionen auf

var options = {
 host: 'localhost',
 port: 80,
 path: '/backbone/data.php',
 method: 'POST',
 headers : {'Content-Type': 'application/x-www-form-urlencoded'}
};
Nach dem Login kopieren

ändern und einen Header-Inhaltstyp hinzufügen, können wir $_POST verwenden, um die Daten zu empfangen! Wenn es sich nicht um diesen Formulartyp handelt, können Sie die Roheingabe zum Empfangen von Daten verwenden!

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Beispielcodes für PHP-Eingabe- und Ausgabeströme (Bild). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage