【问题标题】:CodeIgniter PHP: how to echo a URL segment only if that segment actually existsCodeIgniter PHP:仅当 URL 段实际存在时如何回显该段
【发布时间】:2020-04-29 17:00:30
【问题描述】:

好的,我已经尝试了 3 天来解决这个问题,但我似乎无法正确解决。我试图有条件地回显一个 URL 段(页码),只有当该段确实存在于特定网页时。具体来说,我正在处理我的标题模板中的规范标签。


背景:

我当前的代码根据需要回显分页目录页面,如下所示:

 https://www.example.com/subjects/apples/2
 https://www.example.com/subjects/apples/3
 https://www.example.com/subjects/apples/4
 etc.

它会按照不需要的方式回显目录主页,如下所示:

 https://www.example.com/subjects/apples/


什么必须保持不变:

分页目录 URL 不以正斜杠结尾,这很好。


必须更改的内容:

目录主页确实以正斜杠结尾,这很糟糕。


现有代码:

<link rel="canonical" href="<?php echo $this->config->item("base_url");?><?php echo $category_in_url;?>/<?php echo $this->uri->segment(2);?>" />


期望的结果:

目录主页不得以正斜杠结尾。要停止在目录主页 URL 的末尾留下孤立的正斜杠,您的新代码将回显

/<?php echo $this->uri->segment(2);?>

在特定网页实际存在分段 2(即页码 2+)时。第 0 页和第 1 页在 URL 中不接收页码。所以,从第 2 页开始,我需要回应那部分。分页目录页面应如下所示:

https://www.example.com/subjects/apples/4

目录主页应如下所示:

https://www.example.com/subjects/apples


注意:您的解决方案必须在不破坏 PHP 的情况下使用我现有的代码。

提前感谢您非常感谢您的帮助!

杰森

【问题讨论】:

    标签: php codeigniter conditional-statements segment


    【解决方案1】:
    <link rel="canonical" href="<?php echo $this->config->item("base_url");?><?php echo $category_in_url.((int)$this->uri->segment(2,0) > 1 ? '/'.$this->uri->segment(2) : '');?>" />
    

    【讨论】:

    • Mikeyhun,你正式统治宇宙!您的解决方案在各个方面都像魅力一样!非常感谢!
    猜你喜欢
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 2011-08-11
    • 1970-01-01
    • 2011-08-21
    相关资源
    最近更新 更多