2011-04-05 31 views
1
$dir = '/web99/web/direcotry/filename'; 

我需要从动态目录中删除'/ web99/web /'。删除变量中的字符

我想:

$trimmed = ltrim($dir, "/web99/web/"); 

但是如果一个目录开始与一个W,E,B,9目录的第一个字母被切断。

我该如何放弃我想要的东西,而不是每个这样的人物?

回答

2

$dir = preg_replace('$^/web99/web/$', '', $dir);

+0

@sam如果你想在'$ dir'开头替换'/ web99/web /',请使用这个。 – Oswald 2011-04-05 18:32:35

+0

谢谢你,先生。 – Mike 2011-04-05 18:44:24

0

使用str_replace

$dir = str_replace('/web99/web/', '', $dir); 
+0

@sam利用这一web /'in'$ dir'。 – Oswald 2011-04-05 18:32:00

+0

@Oswald:我认为在这种特殊情况下,不可能有多于一场的比赛。 'str_replace'更容易理解,所以在给定问题级别时我更喜欢它。 – Jon 2011-04-05 18:35:46

0

你可以只使用str_replace,如果你知道它永远不会成为其他地方的路径:

$trimmed = str_replace('/web99/web/', '', $dir); 

如果你想成为确实安全,您可以使用preg_replace来获取字符串的开头:

$trimmed = preg_replace('~^/web99/web/~', '', $dir); 
0

我会用strtr函数的效率(),所以如果你需要其他的字符串替换,编辑会很容易:如果您要更换的`/ web99 /所有出现

$trimmed = strtr($dir, array('/web99/web/'=>''));