【问题标题】:how to route all XML extension to a specific method codeigniter?如何将所有 XML 扩展路由到特定方法 codeigniter?
【发布时间】:2018-03-03 10:23:01
【问题描述】:
我有 codeigniter 项目。我想通过控制器路由所有 xml 扩展 URL。如果我的 URL 获得任何 .xml 扩展名,它将重定向特定的控制器方法(因为我必须检查某些内容),然后它将加载该 .xml 文件。所以我写了
$route['(.xml)'] = "home/xml";
如果我的项目文件夹中不存在该 .xml 文件,它会将所有 .xml 文件正确重定向到 home/xml 方法。如果该 .xml 文件存在于我的项目文件夹中,它不会触发/执行 home/xml,它会直接加载 .xml 文件。那么我怎样才能摆脱这个问题呢?
提前致谢。
【问题讨论】:
标签:
php
xml
codeigniter
routing
【解决方案1】:
你可以改变
$config['url_suffix'] = '';
进入
$config['url_suffix'] = '.xml';
在您的 config.php 文件中
【解决方案2】:
你可以这样做
创建一个控制器说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";