编辑文件路径PHP

时间:2012-09-03 17:03:27

标签: php filepath

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

dirname(__FILE__);

我能够获取保存删除按钮的文件所在的文件路径。结果如下:

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

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

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

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

谢谢!

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分: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
}

答案 2 :(得分: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)

答案 3 :(得分: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来匹配字符串中的正则表达式。