gpt4 book ai didi

php - 预替换问题

转载 作者:太空宇宙 更新时间:2023-11-03 11:08:50 25 4
gpt4 key购买 nike

我有一个页面,我从数据库中提取特定行,其中的名称等于我在 URL 中输入的名称,但我希望它对 SEO 友好。

假设我在数据库中有“David's Print”。

我希望能够通过在 URL 中放入“davids-print”从数据库中提取它

我使用 Codeigniter 作为我的框架。

如果我需要更好地解释,请告诉我

目前我正在使用

public function item($name)
{
$this->data['item'] = $this->db->get_where('items', array('name' => str_replace("-", " ", $name)))->result_array();
$this->layouts->view('databases/items/single', $this->data);
}

但这当然只是针对空格

最佳答案

最好存储 SEO 友好的站点 ID 或 slugs ,因为它们被称为,在您的项目的实际标题旁边。由于某些字符丢失,很难将 slug 转换回原始标题。

首先将 slug 字段添加到您的 items 表中,并使其唯一以便没有歧义(因此每个项目都有自己的 slug)。

每当插入或更新项目时都会生成 slug,例如:

$this->title = $_POST['title'];
$this->slug = url_title($this->title, 'dash', TRUE);

$this->db->insert('items', $this);

如果数据库因为“唯一”约束而抛出异常,您可以尝试多次插入记录,并只向 slug 添加一个数字。

然后您可以使用 slug 轻松搜索该项目($name 包含 url 部分,如 davids-print):

$this->data['item'] = $this->db->
get_where('items', array('slug' => $name))->result_array();

感谢Madmartigan建议使用 url_title CI 自带的。

关于php - 预替换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9993365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com