我在PHP中使用友好的URL路径,其形式为:
/2011/09/here-is-the-title
/2011/09/here-is-the-title/2
我需要标准化这些URL路径以删除4斜杠之后的任何内容,包括斜杠本身。第4个斜杠之后的值有时是一个数字,但也可以是任何参数。
有关如何做到这一点的任何想法?我想正则表达式可以处理它,但我很糟糕。我还认为strpos
和substr
的组合可能能够处理它,但无法弄明白。
答案 0 :(得分:4)
您可以使用explode()
功能:
$parts = explode('/', '/2011/09/here-is-the-title/2');
$output = implode('/', array_slice($parts, 0, 4));
答案 1 :(得分:2)
如果你的正则表达式实现支持任意长度的后视断言,你可以替换
(?<=^[^/]*(/[^/]*){3})/.*$
带有空字符串。 如果没有,您可以替换
^([^/]*(?:/[^/]*){3})/.*$
包含第一个捕获组的内容。可以在ideone.com找到第二个PHP示例。
答案 2 :(得分:2)
答案 3 :(得分:1)
你也可以使用循环:
result="";
for char c in URL:
if(c is a slash) count++;
if(count<4) result=result+c;
else break;