回答
需要任何的正则表达式,而使用ltrim()
与/.
。就像这样:
echo "/".ltrim("../../../somefile/here/", "/.");
此输出:
/somefile/here/
请注意,前导斜杠很重要 - 它总是指根目录。 – BoltClock 2010-09-07 19:00:43
是的,这就是为什么我特意附加它。用户可以删除它,如果需要,仍然可以成功剥离所有'/'和'.' – shamittomar 2010-09-07 19:05:33
'/ .foo'怎么办? – Gumbo 2010-09-07 19:12:55
您可以使用realpath()功能PHP提供。然而,这需要文件存在。
@无论谁低估,请介意说明一下?阅读手册,这是做他想做的,因为文件存在。 – 2010-09-07 19:01:52
而且它会做与..相关的事情。程序员OFTEN miss是某个* nix系统上的“..”,可能会导致符号链接,因此..可能实际上将其移动到磁盘的完全不同的部分。 – 2010-09-07 19:26:37
如果我理解正确你:
$path = "/".str_replace("../","","../../../somefile/here/");
这会失败**在'/../../../ somefile/here /'上,并且会返回'// somefile/here' – shamittomar 2010-09-07 19:02:19
(\.*/)*(?<capturegroup>.*)
第一场小组赛点,随后斜线的无限次数的一些数量;第二组是你感兴趣的人。这会剥去你的主要斜杠,所以请加一个斜线。
请注意,这绝对不能证明您的主要字符串斜杠和句点不是明显愚蠢的。但是,它不会剥离你的路径上的领先点,就像第一组明显的([./])*
模式;它发现最长的一串点和斜线以斜线结尾,所以如果它以点开始,它不会伤害到你的真实路径。
请注意明显的“/”。 ltrim()策略将从目录名称中删除前导点,如果您的第一个目录有一个 - 完全合理,那么这是坏的,因为前导点用于隐藏目录。
你可以尝试:
<?php
$str = '../../../somefile/here/';
$str = preg_replace('~(?:\.\./)+~', '/', $str);
echo $str,"\n";
?>
+1谢谢工作的好 – 2014-08-23 16:03:01
- 1. 使用正则表达式删除相对路径斜杠
- 2. 正则表达式和正斜杠
- 3. 正则表达式和反斜杠
- 4. 删除所有斜杠正则表达式
- 5. 正则表达式用于删除标点符号但忽略正斜杠?
- 6. 正则表达式Python - 反斜杠
- 7. PHP正则表达式无反斜杠
- 8. 正则表达式有3个斜杠
- 9. URL正则表达式 - 从文件名和URL结尾删除尾部斜杠?
- 10. 正则表达式可以删除所有非字母数字,单个句点和单斜杠
- 11. 排除在Java正则表达式正斜杠话
- 12. 正则表达式,删除最后一个正斜杠后的所有内容
- 13. 16位数和正斜杠的正则表达式?
- 14. 正则表达式和正斜杠加上URL中的字符
- 15. 与正向和反斜杠正则表达式
- 16. 排除Javascript中的文字反斜杠正则表达式
- 17. 无法使用正则表达式在字符串中删除反斜杠.net
- 18. Java正则表达式value.split(“\\。”),“反斜杠点”按字符划分?
- 19. AWK gensub正则表达式反斜杠0和反斜杠1不灵
- 20. JavaScript正则表达式只添加正斜杠的规则
- 21. 用正斜杠替换反斜杠javascript中的正则表达式
- 22. preg_replace正则表达式需要正斜杠打开和关闭?
- 23. 正则表达式删除JavaScript的双斜杠(/)风格的评论
- 24. 正则表达式允许任何字符除了反斜杠
- 25. JavaScript正则表达式匹配字符串,除非前面加反斜杠
- 26. Javascript正则表达式:用一个斜杠替换多个正斜杠
- 27. 正则表达式的数字和斜杠
- 28. 可选正斜杠后正确的param正则表达式
- 29. Perl正则表达式:用双反斜杠替换所有反斜杠
- 30. 正则表达式反斜杠和双引号与例外
这是没用的问题。无论如何,它不会给你一条真正的道路。是什么让你觉得你需要这样一个替代品?它是用于文件系统路径还是虚拟Web服务器资源? – 2010-09-07 19:08:59
原因然后可以做$ _SERVER ['DOCUMENT_ROOT']。newpath; – Mike 2010-09-07 19:10:38
从哪里得到这些带点的路径?它在您的脚本中被硬编码,现在您想要重写它以与DOCUMENT_ROOT一起使用? – 2010-09-07 19:12:48