0

我已经使用 PHP 编写了带有 HMVC 架构的代码之类的小框架。以下是要访问的示例 SEF URL。

http://domain.com/controller_name/method_name/param1/param2 http://domain.com/folder_name/controller_name/method_name/param1/param2

以上都很好,可以使用固定类型的数据。但是当我尝试构建一个简单的 CMS 时,我在另一个类别和其他类别中有类别等等,即内部包含一组文章的多级类别结构,我无法使用上面的 URL。我想要类似的东西

http://domain.com/category-name/sub-category-name/sub-sub-category-name http://domain.com/category-name/sub-category-name/article-name

任何人都可以帮助我实现上述代码片段。

4

1 回答 1

0

如果我没有误解你想通过 sefurl 查询类别首先你需要将数据名称转换为 sefurl

function sefurl($s){ 
     $s=trim($s);
     $tr = array('ş','Ş','ı','I','İ','ğ','Ğ','ü','Ü','ö','Ö','Ç','ç','(',')','/',':',',');

     $eng = array('s','s','i','i','i','g','g','u','u','o','o','c','c','','','-','-','');

     $s = str_replace($tr,$eng,$s);



     $s = preg_replace('/&.+?;/', '', $s);

     $s = preg_replace('/\s+/', '-', $s);

     $s = preg_replace('|-+|', '-', $s);

     $s = preg_replace('/#/', '', $s);

     $s = str_replace('.', '.', $s);

     $s = trim($s, '-');

     $s = htmlspecialchars(strip_tags(urldecode(addslashes(stripslashes(stripslashes(trim(htmlspecialchars_decode($s))))))));

     return $s;

        }

现在您可以对其进行测试,例如我的类别名称是“这是一个测试类别”

sefurl($catname);

结果将类似于“this-is-a-test-categorig”

您可以将其用于类别 ID

当您设置新类别时,在您的数据库表中创建一个新的冒号,例如 sefurl,将类别名称转换为 sefurl,然后将其设置为 sefurl 冒号

您可以通过类别的 sefurl 查询

http://yourdomain.com/categori/this-is-a-categor-/

通过“/”解析 url 并在您的分类表中查询后获取“this-is-a-categor-”。

于 2015-04-27T15:47:07.937 回答