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

CodeIgniter中清理产品URL冗余字符提取商品名称

解决CodeIgniter中从productUrl提取产品名称的问题

要从给定的productUrl中提取你想要的格式的产品名称,我们可以通过PHP字符串处理函数结合正则表达式来实现,下面是具体的步骤和修改后的代码:

处理逻辑分解

  • 移除固定前缀:去掉URL开头的https://www.websitename.com/item/部分
  • 剔除末尾的ID和后缀:移除URL最后面的/数字.html部分
  • 转换连字符格式:把大部分-替换为空格,仅保留Winter-Fleece的连字符(匹配你的目标输出需求)

修改模型代码(推荐在模型中处理数据)

我们可以在模型查询结果后,为每个产品对象添加处理好的product_name属性,这样视图可以直接调用,让视图专注于展示内容:

public function get_current_page_records($limit, $start) {
    $this->db->limit($limit, $start);
    $this->db->select("*");
    $this->db->from("SjohlLBzads_products");
    $this->db->join('SjohlLBzads_products_meta', 'SjohlLBzads_products_meta.post_id = SjohlLBzads_products.post_id');
    $this->db->join('SjohlLBzads_ali_meta', 'SjohlLBzads_ali_meta.post_id = SjohlLBzads_products.post_id');
    $query = $this->db->get();

    if ($query->num_rows() > 0) {
        $data = [];
        foreach ($query->result() as $row) {
            // 处理productUrl生成产品名称
            $raw_url = $row->productUrl;
            
            // 步骤1:移除固定前缀
            $prefix = 'https://www.websitename.com/item/';
            $clean_url = str_replace($prefix, '', $raw_url);
            
            // 步骤2:移除末尾的ID和.html后缀
            $clean_url = preg_replace('/\/\d+\.html$/', '', $clean_url);
            
            // 步骤3:转换连字符,保留Winter-Fleece格式
            $product_name = str_replace('-', ' ', $clean_url);
            $product_name = str_replace('Winter Fleece', 'Winter-Fleece', $product_name);
            
            // 将处理好的名称添加到行对象中
            $row->product_name = $product_name;
            $data[] = $row;
        }
        return $data;
    }
    return false;
}

修改视图代码

假设你在视图中是循环遍历产品列表,现在可以直接输出处理好的产品名称:

<?php foreach ($products as $item): ?>
    <?php echo $item->product_name; ?>
<?php endforeach; ?>

如果是单个产品数据,直接输出即可:

<?php echo $item->product_name; ?>

扩展说明

如果后续有更多需要保留连字符的词汇(比如类似Winter-Fleece的组合),可以用数组批量替换来扩展逻辑,让代码更灵活:

// 定义需要保留连字符的词汇组合
$keep_hyphen_phrases = [
    'Winter-Fleece',
    // 可添加更多,比如 'Summer-Cotton'、'High-Waist'
];

// 先统一替换所有连字符为空格,再把需要保留的组合替换回去
$product_name = str_replace('-', ' ', $clean_url);
foreach ($keep_hyphen_phrases as $phrase) {
    $product_name = str_replace(str_replace('-', ' ', $phrase), $phrase, $product_name);
}

内容的提问来源于stack exchange,提问作者Reezal AQ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:42:11