0

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

dirname(__FILE__);

我能够获取包含删除按钮的文件所在的文件路径。结果是:

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

我也想删除的文件路径非常相似,但有点不同。最后 3 个文件夹是一个变量,因此它们的长度(以字符为单位)总是不同的。但是,必须从此文件路径中删除倒数第二个文件夹,以便保留:

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

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

谢谢!

4

4 回答 4

2

我认为这应该可以解决问题:

$folderToRemove = preg_replace( '#^(.*)/(.*?)/(.*?)$#', "$1/$3", dirname(__FILE__) );
于 2012-09-03T17:11:19.083 回答
1

您可以尝试使用“glob”。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
}
于 2012-09-03T17:13:19.757 回答
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)
于 2012-09-03T17:13:39.010 回答
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;

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

于 2012-09-03T17:23:01.687 回答