2011-05-15 38 views
0

我有这个URL(几个类似的)..PHP删除页名正则表达式 - 的preg_replace

images/image1/image1.jpg 
images/images1/images2/image2.jpg 
images/images2/images3/images4/image4.jpg 

我有这样的正则表达式:但我想它从字符串剥去图像名称:

<?php $imageurlfolder = $pagename1; 
    $imageurlfolder = preg_replace('/[A-Za-z0-9]+.asp/', '', $pagename1);?> 

字符串将类似于URL的上述images/images2/images3/images4/但没有image4.jpg

希望你能帮助

感谢

+1

不知道'目录名()'适用在这里。但是你是否试过修改你的正则表达式来简单地使用''jpg'而不是'asp'? '.'应该是'\ .',并且在末尾附加一个'$'。 – mario 2011-05-15 18:54:45

回答

3

对于这个特殊的PUR造成功能dirname()就足够了:

<?php echo dirname('images/images2/images3/images4/image4.jpg'); ?> 

将返回:

images/images2/images3/images4 
+0

这是我见过的最酷的功能之一:-)我是一个asp程序员,这只是NEAT!谢谢... – 2011-05-15 19:12:12

+0

欢迎来到PHP世界,Gerard!我们在这里玩得开心! ] – 2011-05-15 19:20:46

1

一个非常简单的方式来做到这一点:

preg_replace("#(?<=/)[^/]+$#","",$your_string); 

将上一次的删除一切/和字符串的结尾。

编辑:尽可能多的peopole指出的那样,你也可以使用目录名称可能证明更快...

+0

谢谢,我去了dirname示例 – 2011-05-15 19:12:39

2

我想你可以使用dirname功能

例如(从该页面)

dirname("/etc/passwd") 

将打印

/etc 
+0

+1击败了我。 'basename()'和'dirname()'是不可或缺的。 – 2011-05-15 18:57:35