如何将所有XML扩展路由到特定方法codeigniter?

时间:2018-03-03 10:23:01

标签: php xml codeigniter routing

我有codeigniter项目。我希望通过控制器路由所有xml扩展URL。如果我的URL获得任何.xml扩展名,它将重定向特定的控制器方法(因为我必须检查一些东西),之后它将加载该.xml文件。所以我写了

 $route['(.xml)'] = "home/xml";

如果我的项目文件夹中不存在.xml文件,它会将所有.xml文件重定向到home / xml方法。如果我的项目文件夹中存在.xml文件,则它不会触发/执行home / xml,它直接加载.xml文件。那我怎么能摆脱这个问题呢? 提前致谢。

2 个答案:

答案 0 :(得分:0)

你可以改变

$config['url_suffix'] = ''; 

$config['url_suffix'] = '.xml';

位于config.php文件中

答案 1 :(得分:0)

您可以这样做

创建一个控制器,例如example.php

使用方法测试

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Example extends CI_Controller {

public function index()
{

}

public function test()
{
     header( "Content-type: text/xml");

     echo "<?xml version='1.0' encoding='UTF-8'?>
     <rss version='2.0'>
     <channel>
     <title RSS</title>
     <link>/</link>
     <description>Cloud RSS</description>
     <language>en-us</language>";

      // while($row = mysqli_fetch_array($con,$query)){
      //  $title=$row["title"];
      //  $link=$row["link"];
      //  $description=$row["description"];

       echo "<item>
       <title>Title</title>
       <link>Link</link>
       <description>description</description>
       </item>";
     // }
     echo "</channel></rss>";

}}

然后在路线中添加

$route['example/(:any).xml'] = "example/test";