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['title'], $title_size, $data['content'], $data['pubdate']); } $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( '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 .= create_item($data['title'], $title_size, $data['content'], $data['pubdate']); } $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!