【问题标题】:SEF URL for categories hierarchy and articles类别层次结构和文章的 SEF URL
【发布时间】:2015-04-27 15:32:49
【问题描述】:

我使用 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

谁能帮我用 sn-p 实现上述目标。

【问题讨论】:

    标签: php content-management-system sef


    【解决方案1】:

    如果我没有误解你想通过 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-”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-26
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      • 1970-01-01
      • 2020-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多