首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP -如何用空格替换破折号?

问PHP -如何用空格替换破折号?
EN

Stack Overflow用户
提问于 2011-11-07 17:39:58
回答 1查看 264关注 0票数 0

我目前正在使用以下代码将我的字符串转换为seo友好的urls:

代码语言:javascript
复制
        function url($url) {
    $url = str_replace(" ", " ", $url);
    $url = str_replace(array("'", "-"), "", $url); 
    $url = mb_convert_case($url, MB_CASE_LOWER, "UTF-8");
    $url = preg_replace("#[^a-zA-Z]+#", "-", $url); 
    $url = preg_replace("#(-){2,}#", "$1", $url); 
    $url = trim($url, "-"); 
        return $url;
} 

当我查询我的数据库时,我将url与我的数据库中的文章标题进行匹配,我的问题是,在执行seo友好的url函数后,url与我的数据库中的任何文章标题都不匹配。

添加破折号(不确定小写)意味着它们与数据库中的条目完全不同。

我的下一步是什么,我应该在查询数据库之前删除破折号,如果是的话,如何删除?

或者更好的做法是在我的url中包含文章id并引用它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-07 17:46:33

在我看来,按id查询要比重新转换回你的标题更快更简单,使用url重写来忽略标题(只是为了引用),并调用一个以id作为GET参数的页面。看看当前的网址,我会认为StackOverflow是这样工作的。

以当前页面为例,我怀疑

代码语言:javascript
复制
http://stackoverflow.com/questions/8034788/php-how-can-i-replace-dashes-with-spaces

被重写为类似于

代码语言:javascript
复制
http://stackoverflow.com/questions.php?id=8034788

其中一个简单的SQL查询获取文章的内容。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8034788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档