0

私のページに削除ボタンがあります。その削除ボタンはデータベース内の特定のエントリを削除する必要があります(それほど難しくはありません)。削除ボタンを保持するファイルが含まれているフォルダー全体を削除する必要があります(これも実行可能です)が、また、別の場所に配置されている別のフォルダーを削除したいのですが、その方法がわかりません。使用する

dirname(__FILE__);

削除ボタンを保持しているファイルが配置されているファイルパスを取得できます。その結果、次のようになります。

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

私も削除したいファイルパスは非常に似ていますが、少し異なります。最後の3つのフォルダーは変数であるため、それらの長さ(文字数)は常に異なります。ただし、最後から2番目のフォルダをこのファイルパスから削除する必要があるため、次のようになります。

 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

「グロブ」を使ってみることができます。詳細は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 に答える