PHP 正则表达式用目录分隔符替换路径中的'any'斜杠



我试图采取这样的路径:

一些/路径其他 路径

并将路径中的每个斜杠替换为PHP的常量

中的DIRECTORY_SEPARATOR

我有这个:

$subject = '/asdf';
$var = preg_replace('#\\#', DS, $subject);
print $var;

但这不是替换,它只是添加。

谢谢你的帮助

与其用preg_replace,不如用str_replace

$var = str_replace(array('/', '\'), DIRECTORY_SEPARATOR, $subject);
http://us3.php.net/manual/en/function.str-replace.php

因为您有2个斜杠尝试使用#\#

如果您不显式地需要regex,那么可以这样做:

$string = "some/path/here someotherpath";
$ds = DIRECTORY_SEPARATOR;
$result = str_replace(array("/","\"),$ds,$string);
echo $result;

输出:一些/道路/一些/其它/路径

它应该替换,而不是添加。

preg_replace('/[\]/', DS, $subject);

最新更新