Maison > développement back-end > tutoriel php > laravel génère des données XML, php génère des données au format XML

laravel génère des données XML, php génère des données au format XML

藏色散人
Libérer: 2023-04-08 08:26:02
avant
3432 Les gens l'ont consulté

Contexte :

Les collègues SEO souhaitent soumettre des données au format XML aux moteurs de recherche par lots. Le projet actuel est développé à l'aide du framework Laravel, c'est pourquoi cet article est né. Il existe de nombreux exemples sur Internet concernant la sortie php au format XML. Je l'ai également déplacé auparavant. Ce n'est pas un problème de simplement le tester sur le fichier php. Si je le déplace vers le framework Laravel, il y aura des pièges. est la question d'en-tête.

Comment le framework Laravel renvoie-t-il des données au format XML ?

Si vous utilisez header("Content-type: text/xml");

cela n'aura aucun effet et une erreur comme celle-ci sera affichée :

Cette page contient les erreurs suivantes :

erreur à la ligne 14 à la colonne 6 : déclaration XML autorisée uniquement au début du document

Ci-dessous un rendu de la page jusqu'à la première erreur.

Le framework Laravel renverra les données en mode texte/html lors de la sortie XML La solution :

nécessite une réponse de retour ($xml,200) ->en-tête. ("Content-type", "text/xml"); De cette façon, vous pouvez changer l'en-tête

laravel renvoie un exemple de format de données XML :

/**
  * 神马搜索数据结构化,written:yangxingyi Data:2018-10-25 11:15
  */
 public function index(Request $request){
        $data_array = array(
            array(
                'title' => 'title1',
                'content' => 'content1',
                'pubdate' => '2009-10-11',
            ),
            array(
                'title' => 'title2',
                'content' => 'content2',
                'pubdate' => '2009-11-11',
            )
        );
        $title_size = 1;
        $xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
        $xml .= "<article>\n";
        foreach ($data_array as $data) {
            $xml .= $this->create_item($data[&#39;title&#39;], $title_size, $data[&#39;content&#39;], $data[&#39;pubdate&#39;]);
        }
        $xml .= "</article>\n";
        #echo $xml;
        return response($xml,200)->header("Content-type","text/xml");
    }
 /**
  * 神马搜索数据结构化,节点的具体内容 written:yangxingyi
  */
    private function create_item($title_data, $title_size, $content_data, $pubdate_data)
    {
        $item = "<item>\n";
        $item .= "<title size=\"" . $title_size . "\">" . $title_data . "</title>\n";
        $item .= "<content>" . $content_data . "</content>\n";
        $item .= " <pubdate>" . $pubdate_data . "</pubdate>\n";
        $item .= "</item>\n";
        return $item;
    }
Copier après la connexion

PHP génère des données au format XML et ajoute un en-tête("Content-type: text/xml"); l'en-tête suffit

<?php
 header("Content-type: text/xml");
$data_array = array(
    array(
    &#39;title&#39; => &#39;title1&#39;,
    &#39;content&#39; => &#39;content1&#39;,
        &#39;pubdate&#39; => &#39;2009-10-11&#39;,
    ),
    array(
    &#39;title&#39; => &#39;title2&#39;,
    &#39;content&#39; => &#39;content2&#39;,
    &#39;pubdate&#39; => &#39;2009-11-11&#39;,
    )
);
$title_size = 1;
$xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
$xml .= "<article>\n";
foreach ($data_array as $data) {
$xml .= create_item($data[&#39;title&#39;], $title_size, $data[&#39;content&#39;], $data[&#39;pubdate&#39;]);
}
$xml .= "</article>\n";
echo $xml;
//创建XML单项
function create_item($title_data, $title_size, $content_data, $pubdate_data)
{
    $item = "<item>\n";
    $item .= "<title size=\"" . $title_size . "\">" . $title_data . "</title>\n";
    $item .= "<content>" . $content_data . "</content>\n";
    $item .= " <pubdate>" . $pubdate_data . "</pubdate>\n";
    $item .= "</item>\n";
    return $item;
}
?>
Copier après la connexion

Pour plus de connaissances sur PHP, veuillez visiter le Tutoriel PHP !

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!

Étiquettes associées:
source:csdn.net
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal