簡體   English   中英

php正則表達式用目錄分隔符替換路徑中的“任何”斜杠

[英]php regex to replace 'any' slashes in a path with directory separator

我正在嘗試采用這樣的路徑:

一些/路徑/這里一些\\其他\\路徑

並用 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 條斜線嘗試#\\\\#

如果您沒有明確需要正則表達式,那么方法如下:

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

輸出:一些/路徑/這里一些/其他/路徑

它應該替換,而不是添加。 但是試試這個:

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

也應該工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM