首页 >后端开发 >php教程 > 正文

laravel输出xml数据,php输出xml格式数据

转载2020-01-15 14:47:2501320
背景:

seo的同事要批量提交xml格式的数据到搜索引擎,目前项目用laravel框架开发的,所以就有了这篇文章的诞生了。网上有不少关于php输出xml格式的例子,小弟不才也搬过,只是在php文件上面测试是没问题的,把它搬到laravel框架里面,就有有坑了,主要原因是header头的问题。

laravel框架怎么返回xml格式数据?

如果用header(“Content-type: text/xml”);

这样的话是没有效果的,会提示这样的错误:

This page contains the following errors:

error on line 14 at column 6: XML declaration allowed only at the start of the document

Below is a rendering of the page up to the first error.

laravel框架在输出xml的时候会自行用text/html方式返回数据,解决办法:

需要return response($xml,200)->header(“Content-type”,“text/xml”);这样的方式才能改变header头

laravel返回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['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生成xml格式的数据直接加上 header(“Content-type: text/xml”);头就行了

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

更多PHP相关知识,请访问PHP教程

以上就是laravel输出xml数据,php输出xml格式数据的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码
  • 相关标签:laravel php
  • 本文转载于:csdn,如有侵犯,请联系a@php.cn删除
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • phpxml转换json的方法:首先需要使用SimpleXMLElement将XML内容转化成适当的PHP类型;然后将PHP提供给【Services_JSON】编码器;最后生成最终的JSON即可
    phpexcle的.csv时乱码的解决办法:1、改变编码,可以尝试【UTF-8,GBK,GB2312】等编码;2、修改文件编码问题,把文件改成【UTF-8】有BOM的。
    PHP中将JSON转XML的方法:首先获取JSON文件中的字符;然后使用函“json_decode()”函将字符串转为组;再将组循环拼接成XML;最后将XML写入文件中并将后缀名改为
    php xml乱码是由于PHP程序编码和XML文件的编码不一致导致的,其解决办法有:1、把gb2312改为“utf-8”;2、直接设置PHP文件为ansi即可正常。
    php生成word文件的方法:首先打开word文件,另存为xml文件;然后xml文件;接着找到关键替换成特殊字符串;最后把xml文件中的关键换成模板变量并设置请求头部content-type
    PHP将JSON转换为XML的方法:首先使用“file_get_content()”函将JSON读取来;然后使用函“json_decode()”将进行解码;接着循环拼接成XML字符串;
    “%ld”在C语言中是一种说明符中的类型,也就是入符号,其作用是将入或者,按照说明符指定的进行入或者,该类型表示为按十进制有符号长型整入或
    Laravel foreach渲染表中有:1、传过来的对象形,代码为“@foreach($data as $k => $v)”;2、传过来的;3、“<?
    php中有5种,分别是echo、print_r、print、var_dump和die,var_dump和print_r既能字符串等单一又能组等多种,echo和print只能字符串等单一
    PHP实现RESTful原理:首先定义一个请求接收类;然后在类中根请求类型,进行调用不同方法;接着定义一个类,将进行统一的封装;最后将方法返回的进行即可。
    python ipo模型是指“Input Processing Output”模,即——处理——结果。在Python中采用input()函、print()函
    从“phpmyadmin”导表的方法是:首先选择需要导表所在的库,然后选择需要导表,单击【导】选项,接着选择导为【快速】,选择【SQL】,入文件名,点击执行即可。
    IPO(Input Processing Output)模,即→处理结果。
    php中可以使用“fprintf()”函按指定写入到文本文件中,该函用于指定,其语法是“fprintf(fid, format, variables)”,其参fid表示指定要写入的文件
    phpExcel乱码的解决方法:在PHP处理完之后,excel文件之前,先使用ob_end_clean()函处理一下;然后再进行即可。
    java向html中文乱码解决方法:1、使用response.setHeader()方法指定HTML编码,然后使用getOutputStream()方法写入指定编码
    步骤:1、打开需要操作的表,将旁的一列选中;2、在编辑栏中入“=0&A1”(A1根实际情况填写),再按“CTRL+Enter”键;3、将刚刚好的复制,再原位粘贴值型的,把公去除
    PHP获取指定地区的天气的方法:首先创建一个“weather.PHP”文件;然后入“获取天气”的代码;接着把获取的json转化为一个对象进行调用;最后获取指定的并按照一定即可。
    PHP实现表Excel的导的方法:首先下载PHPExcel包并将包引入到项目中;然后实例化PHPExcel对象;接着设置表的列,以及列属性;再将添加到表单元中;最后将表并设置头部信息即可
    access报表的功能是:1、呈现化的;2、分组组织,进行汇总;3、打印标签、发票、订单和信封等多种样;4、在报表中嵌入图像或图片来丰富显示的内容。

    专题推荐

    推荐视频教程
  • javascript初级视频教程javascript初级视频教程
  • jquery 基础视频教程jquery 基础视频教程
  • 视频教程分类