2012-09-03 100 views
0

我在我的页面上有一个删除按钮,删除按钮必须删除我的数据库中的某个条目(不是太难),它必须删除保存删除按钮的文件所在的整个文件夹(也可以),但我也希望它删除另一个文件夹放在其他地方,我不知道该怎么做。使用编辑文件路径PHP

dirname(__FILE__); 

我能够得到文件路径,其中包含删除按钮的文件所在的位置。这导致在此:

mywebsite.nl/subdomains/dongen/httpdocs/s-gravenmoer/aandrijvingenenbesturingen/logo4life 

,我也想删除的文件路径是相当similair,但有一点不同。最后3个文件夹是一个变量,所以它们的长度(以字符表示)总是不同的。然而,倒数第二个文件夹已被从该文件路径删除,所以这仍然是:

mywebsite.nl/subdomains/dongen/httpdocs/s-gravenmoer/logo4life 

有没有办法用PHP来做到这一点?使用substr或者类似的东西?

谢谢!

回答

2

我想这应该做的伎俩:“水珠”

$folderToRemove = preg_replace('#^(.*)/(.*?)/(.*?)$#', "$1/$3", dirname(__FILE__)); 
+0

谢谢,这个伎俩! – user1555076

1

您可以尝试使用在www.php.net/glob

详细信息您可以试试:

$files = glob('subdomains/dongen/httpdocs/*/logo4life'); 
foreach ($files as $file) { 
    unlink($file); // note that this is very dangerous though, you may end up deleting a lot of files 
} 
+0

感谢您的帮助,我去了,采取了不太危险的方法;) – user1555076

0

你不需要任何幻想,你猜到了,一个简单的str_replace函数将做到这一点: -

$file = 'mywebsite.nl/subdomains/dongen/httpdocs/s-gravenmoer/aandrijvingenenbesturingen/logo4life'; 
var_dump(str_replace('aandrijvingenenbesturingen/', '', $file)); 

输出: -

string 'mywebsite.nl/subdomains/dongen/httpdocs/s-gravenmoer/logo4life' (length=62) 
+0

不幸的是,这不会工作,因为最后3个文件夹是可变的,aandrijvingenenbesturingen并不总是只是.. – user1555076

0
$path = "mywebsite.nl/subdomains/dongen/httpdocs/s-gravenmoer/aandrijvingenenbesturingen/logo4life"; 
$regex = "/(.*\/).*\/(.*)/"; 
$matches = array(); 
preg_match($regex, $path, $matches); 
// var_dump($matches); 
$new_path = $matches[1].$matches[2]; 
echo $new_path; 

上面的代码使用s preg_match用于匹配字符串中的正则表达式。