Maison > développement back-end > tutoriel php > Comment analyser manuellement les données Multipart/Form-Data pour les requêtes PUT en PHP ?

Comment analyser manuellement les données Multipart/Form-Data pour les requêtes PUT en PHP ?

Patricia Arquette
Libérer: 2024-10-29 11:32:30
original
870 Les gens l'ont consulté

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

Analyse manuelle des données brutes multiparts/données de formulaire en PHP pour les requêtes PUT

Lorsque vous travaillez avec des requêtes multiparts/données de formulaire, en particulier dans Dans le contexte des opérations HTTP PUT, l'analyse intégrée de PHP peut ne pas traiter automatiquement les données brutes comme elle le fait pour les requêtes POST. Pour surmonter ce problème, une analyse manuelle est requise.

Récupération des données brutes

Tout d'abord, récupérez le corps brut de la requête HTTP à l'aide de file_get_contents('php://input' ).

Analyse de l'en-tête Content-Type

Extraire la limite en plusieurs parties de l'en-tête Content-Type à l'aide d'une expression régulière :

<code class="php">preg_match('/boundary=(.*)$/', $_SERVER['CONTENT_TYPE'], $matches);
$boundary = $matches[1];</code>
Copier après la connexion

Diviser les données

Divisez les données brutes en blocs individuels séparés par la limite :

<code class="php">$a_blocks = preg_split("/-+$boundary/", $input);
array_pop($a_blocks);</code>
Copier après la connexion

Itération sur les blocs

Parcourez chaque bloc et analysez son contenu :

<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>
Copier après la connexion

Les données analysées sont désormais accessibles à partir du tableau $a_data. Cette méthode d'analyse personnalisée vous permet de gérer des données brutes multiparts/form-data en PHP, ce qui est particulièrement utile pour les scénarios impliquant des requêtes PUT.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal