$path = '/home/to//my///site';
Run Code Online (Sandbox Code Playgroud)
我试图/从上面的路径中删除不必要的正斜杠
我想要得到这个结果
/home/to/my/site
Run Code Online (Sandbox Code Playgroud)
我失败了str_replace,因为我不知道斜线的数量.
dyn*_*mic 27
有了preg_replace你可以用一个单一的代码行获得此:
preg_replace('#/+#','/',$str);
Run Code Online (Sandbox Code Playgroud)
该模式/+将匹配前进/一次或多次,并将替换为单个/.
当然还有其他方法可以实现这一点,例如使用while循环.
while( strpos($path, '//') !== false ) {
$path = str_replace('//','/',$path);
}
Run Code Online (Sandbox Code Playgroud)
这将调用,str_replace直到所有出现的//更换.如果您想牺牲可读性(不建议),您也可以在一行代码中编写该循环.
while( strpos( ($path=str_replace('//','/',$path)), '//' ) !== false );
Run Code Online (Sandbox Code Playgroud)
如果有人想从URL中删除额外的斜杠而不删除http/https之后的前两个斜杠:
$url = preg_replace('/([^:])(\/{2,})/', '$1/', $url);
Run Code Online (Sandbox Code Playgroud)
(感谢ツLiverbool 如何使用'PREG'或'HTACCESS'删除URI中的多个斜杠)
| 归档时间: |
|
| 查看次数: |
15139 次 |
| 最近记录: |