WordPress 自動バックアップ

WordPress にアップロードした画像ファイルがサーバー内のどこにあるのか?検索する PHP プログラム(サンプル)

WordPress にアップロードした画像ファイルがサーバー内のどこにあるのか?検索する PHP プログラム(サンプル)

WordPress をカスタマイズしたりバックアップを取ったりしたい場合に、WordPress にアップロードした画像ファイルがどこにが保存されているのか?!を ファイルをダウンロードせずに レンタルサーバー内で検索したい場合があると思います。

そんな問題を解決する PHP プログラムのサンプルをご紹介いたします。

WordPress のディレクトリ構成

WordPress をインストールしたサーバー内のディレクトリ構成を画面表示する PHP プログラムはブログエントリ「WordPress のフォルダ構成を画面表示する PHP サンプルプログラム」で紹介しましたように、以下のようなプログラムになります。

<?php
	getDir("../wp-admin/");
	
	function getDir($strDir){
		
		$arrDir = scandir($strDir);
		
		for ($i = 0; $i <= max(array_keys($arrDir)); $i++){
			if ($arrDir[$i] == "." || $arrDir[$i] == ".."){
				//処理しない
			} else {
				if (is_dir($strDir . $arrDir[$i])){
					//画面表示する
					echo $strDir . $arrDir[$i] . "/<br>";
					//再帰検索する
					getDir($strDir . $arrDir[$i] . "/");
				} else {
					//ファイルなので処理しない
				}
			}
		}
	}
?>

取得結果がファイルの場合

ここで例えば、”hogehoge.png” という画像ファイルを検索したいとすれば … 12行目の scandir 関数で取得した結果が(12行目 : ディレクトリの場合ではなく)18行目 : ディレクトリではない場合 = ファイルの場合 の処理に「ファイル名が “hogehoge.png” の場合には ディレクトリ名を出力表示する」という以下の条件式を加えます…

if ($arrDir[$i] == "hogehoge.png"){
	echo $strDir . "/";
}

その他の修正

さらに、上記のサンプルプログラムでは “wp-admin” ディレクトリを検索するようになってますが、アップロードしたコンテンツは “wp-contents” ディレクトリ内に保存されているはずですので、こちらを検索するように修正し、また、無関係のディレクトリは出力表示をしない方が良いので14行目は削除します。するとこんなプログラムになります…

<?php
	getDir("../wp-content/");
	
	function getDir($strDir){
		
		$arrDir = scandir($strDir);
		
		for ($i = 0; $i <= max(array_keys($arrDir)); $i++){
			
			if ($arrDir[$i] == "." || $arrDir[$i] == ".."){
				//処理しない
			} else {
				if (is_dir($strDir . $arrDir[$i])){
					//再帰検索する
					getDir($strDir . $arrDir[$i] . "/");
				} else {
					//ファイルの場合
					if ($arrDir[$i] == "hogehoge.png"){
						echo $strDir;
					}
				}
			}
		}
	}
?>

実際に、昨日(2021/10/10)投稿したアイキャッチ画像のファイル名に書き換えて実行してみると、こんな結果が返ってきました…

FTP クライアントソフトで上記ディレクトリを見てみると…実際にアップロードしたアイキャッチ画像以外に WordPress が多くの関連画像を生成保存していて…びっくりしました、、、汗

改修例

上記では、ファイル名を直接 “hogehoge.png” と指定していますが、入力フォームを作って 入力指定したファイル名を検索するようなプログラムにも簡単に書き換えられますよね!

プログラミング相談受付中

自営エンジニア歴 20年以上の 当ブログ作者が、プログラミングに関するオンライン相談(zoom 等)を受付中です。言語は HTML CSS JavaScript jQuery PHP MySQL VBScript など…

詳細・お問い合わせはこちら