Heim > Backend-Entwicklung > PHP-Tutorial > Wie analysiere ich manuell Multipart-/Formulardatendaten für PUT-Anfragen in PHP?

Wie analysiere ich manuell Multipart-/Formulardatendaten für PUT-Anfragen in PHP?

Patricia Arquette
Freigeben: 2024-10-29 11:32:30
Original
876 Leute haben es durchsucht

How to Manually Parse Multipart/Form-Data Data for PUT Requests in PHP?

Manuelles Parsen von mehrteiligen/Formulardaten-Rohdaten in PHP für PUT-Anfragen

Beim Arbeiten mit mehrteiligen/Formulardatenanforderungen, insbesondere in Im Kontext von HTTP-PUT-Vorgängen verarbeitet das integrierte Parsing von PHP die Rohdaten möglicherweise nicht automatisch, wie dies bei POST-Anfragen der Fall ist. Um dieses Problem zu lösen, ist eine manuelle Analyse erforderlich.

Abrufen der Rohdaten

Zuerst rufen Sie den rohen HTTP-Anfragetext mit file_get_contents('php://input' ab) ).

Parsen des Content-Type-Headers

Extrahieren Sie die mehrteilige Grenze aus dem Content-Type-Header mithilfe eines regulären Ausdrucks:

<code class="php">preg_match('/boundary=(.*)$/', $_SERVER['CONTENT_TYPE'], $matches);
$boundary = $matches[1];</code>
Nach dem Login kopieren

Aufteilen der Daten

Teilen Sie die Rohdaten in einzelne Blöcke auf, die durch die Grenze getrennt sind:

<code class="php">$a_blocks = preg_split("/-+$boundary/", $input);
array_pop($a_blocks);</code>
Nach dem Login kopieren

Iterieren über Blöcke

Durchlaufen Sie jeden Block und analysieren Sie seinen Inhalt:

<code class="php">foreach ($a_blocks as $id => $block)
{
    // Check if the block contains uploaded files
    if (strpos($block, 'application/octet-stream') !== FALSE)
    {
        // Extract file metadata using regex
        preg_match('/name=\&quot;([^\&quot;]*)\&quot;.*stream[\n|\r]+([^\n\r].*)?$/s', $block, $matches);
    }
    // Parse other form fields
    else
    {
        // Extract form field name and value using regex
        preg_match('/name=\&quot;([^\&quot;]*)\&quot;[\n|\r]+([^\n\r].*)?\r$/s', $block, $matches);
    }
    $a_data[$matches[1]] = $matches[2];
}</code>
Nach dem Login kopieren

Auf die analysierten Daten kann jetzt über das Array $a_data zugegriffen werden. Mit dieser benutzerdefinierten Parsing-Methode können Sie rohe Multipart-/Formulardaten in PHP verarbeiten, was besonders nützlich für Szenarien mit PUT-Anfragen ist.

Das obige ist der detaillierte Inhalt vonWie analysiere ich manuell Multipart-/Formulardatendaten für PUT-Anfragen in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage