You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何将URL中的%20替换为短横线?附CodeIgniter代码

CodeIgniter 中将 URL 空格替换为连字符的实现方案

1. 视图层(View):生成 SEO 友好的 URL

在生成详情页链接时,使用 CodeIgniter 内置的 url_title() 函数将标题中的空格替换为连字符,同时自动处理特殊字符(可选转为小写)。

示例代码:

<!-- 循环输出服务列表时生成链接 -->
<?php foreach ($services as $row): ?>
    <a href="<?= site_url('service-view/detail/'.$row->id.'/'.url_title($row->title, 'dash', TRUE)) ?>">
        <?= $row->title ?>
    </a>
<?php endforeach; ?>

url_title() 参数说明:

  • 第一个参数:待处理的标题字符串
  • 第二个参数:分隔符类型,'dash' 对应连字符 -
  • 第三个参数:是否转为小写,TRUE 开启,FALSE 保留原大小写

生成的 URL 会自动变为 http://localhost/webcodingmedia/service-view/detail/10/Jasa-SEO 格式。

2. 控制器层(Controller):处理 URL 参数

在详情页方法中,将 URL 里的连字符换回空格,匹配数据库中的原始标题(若查询依赖标题字段)。

示例代码:

class Service_view extends CI_Controller {
    public function detail($id, $slug) {
        // 将连字符还原为空格,匹配数据库原始标题
        $original_title = str_replace('-', ' ', $slug);
        
        // 调用模型获取服务数据
        $data['service'] = $this->service_model->get_service($id, $original_title);
        
        // 加载详情视图
        $this->load->view('service_detail', $data);
    }
}

3. 模型层(Model):适配查询逻辑

修改模型方法,接收 ID 和还原后的标题参数进行查询:

示例代码:

class Service_model extends CI_Model {
    public function get_service($id, $title) {
        $query = $this->db->get_where('services', [
            'id' => $id,
            'title' => $title
        ]);
        return $query->row();
    }
}

额外优化:存储固定 Slug 字段(可选)

如果想提升查询效率,可在数据库新增 slug 字段,添加服务时直接生成并存储连字符格式的 slug,后续查询无需来回转换:

  • 添加服务的模型代码:
public function add_service($data) {
    $data['slug'] = url_title($data['title'], 'dash', TRUE);
    return $this->db->insert('services', $data);
}
  • 控制器详情方法:
public function detail($id, $slug) {
    $data['service'] = $this->service_model->get_service_by_slug($id, $slug);
    $this->load->view('service_detail', $data);
}
  • 模型查询方法:
public function get_service_by_slug($id, $slug) {
    $query = $this->db->get_where('services', [
        'id' => $id,
        'slug' => $slug
    ]);
    return $query->row();
}

测试验证

修改完成后,访问生成的链接,确认详情页正常加载且 URL 格式符合预期。

内容的提问来源于stack exchange,提问作者Fansyah Dwi Krisnady

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 14:17:10