Heim  >  Artikel  >  Backend-Entwicklung  >  Laravel gibt XML-Daten aus, PHP gibt Daten im XML-Format aus

Laravel gibt XML-Daten aus, PHP gibt Daten im XML-Format aus

藏色散人
藏色散人nach vorne
2020-01-15 14:47:253205Durchsuche

Hintergrund:

SEO-Kollegen möchten Daten im XML-Format stapelweise an Suchmaschinen übermitteln. Das aktuelle Projekt wird mit dem Laravel-Framework entwickelt, daher ist dieser Artikel entstanden. Es gibt viele Beispiele für die PHP-Ausgabe im XML-Format. Es ist kein Problem, es einfach in das Laravel-Framework zu verschieben ist die Header-Header-Frage.

Wie gibt das Laravel-Framework Daten im XML-Format zurück?

Wenn Sie header(„Content-type: text/xml“);

verwenden, hat dies keine Auswirkung und es wird ein Fehler wie dieser angezeigt:

Diese Seite enthält die folgenden Fehler:

Fehler in Zeile 14 in Spalte 6: XML-Deklaration nur am Anfang des Dokuments zulässig

Unten finden Sie eine Darstellung der Seite bis zu der erste Fehler.

Das Laravel-Framework gibt Daten im Text-/HTML-Modus zurück, wenn es XML ausgibt. Die Lösung:

erfordert Rückgabeantwort($xml,200)->header („Content-type“, „text/xml“); Auf diese Weise kann der Header

geändert werden. Laravel gibt ein Beispiel für ein XML-Datenformat zurück:

/**
  * 神马搜索数据结构化,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;
    }

PHP generiert Daten im XML-Format und fügt direkt den Header hinzu („Content-type: text/xml“); Header

<?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;
}
?>

Weitere PHP-bezogene Kenntnisse finden Sie im PHP-Tutorial !

Das obige ist der detaillierte Inhalt vonLaravel gibt XML-Daten aus, PHP gibt Daten im XML-Format aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen