【问题标题】:Remove first forward slash in a link?删除链接中的第一个正斜杠?
【发布时间】:2010-10-31 14:39:49
【问题描述】:

我需要删除链接中的第一个正斜杠,格式如下:

/directory/link.php

我需要:

directory/link.php

我不懂正则表达式(preg_replace?),那些斜线让我很生气..

我需要你的帮助!

非常感谢!

【问题讨论】:

标签: php regex preg-replace


【解决方案1】:

只是因为之前没有人提到过:

$uri = "/directory/link.php";
$uri = ltrim($uri, '/');

这个的好处是:

  • substr() solution: 相比,它也适用于不以斜杠开头的路径。所以在一个 uri 上多次使用相同的过程是安全的。

  • preg_replace() solution相比,它肯定要快得多。在我看来,为这样一个微不足道的任务启动正则表达式引擎是矫枉过正的。

【讨论】:

  • 该死。当我看到这个问题时,我希望我能提出这个建议。 :) +1
  • trim 也将删除多个斜杠,因此 trim('//foo/bar') 变为 'foo/bar' 这可能不是您想要的。
【解决方案2】:
preg_replace('/^\//', '', $link);

【讨论】:

  • 非常感谢,你能给我指点preg_replace的好学习资源吗?
  • 也可以写成preg_replace('#^/#', '', $link);,这样可读性会更好
【解决方案3】:

如果它始终是第一个字符,则不需要正则表达式:

$uri = "/directory/link.php";
$uri = substr($uri, 1);

【讨论】:

  • 你不需要指定长度。
猜你喜欢
  • 1970-01-01
  • 2012-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-19
相关资源
最近更新 更多