web-dev-qa-db-ja.com

変換する PHP WP_Filesystemへのreadfile

以下のスクリプトでは、readfileをWP_filesytemと同等のものに変換する必要があります。しかし、私はコーデックスで同じを見つけることができません。任意の助けは大歓迎です。

このスクリプトはsettings.iniファイルをユーザーのデスクトップ/ pcに保存します。

WP_Filesystem();
global $wp_filesystem;

$mySettingsFileLocation = WP_PLUGIN_DIR.'/my-settings/settings.ini';

if ( ! $wp_filesystem->put_contents( $mySettingsFileLocation, $mySettings, 0644) ) {
    return true;
}


// Define the path to file
 $file = WP_PLUGIN_DIR.'/my-settings/settings.ini';

 if(!$file)
 {
         // File doesn't exist, output error
         die('file not found');
 }
 else
 {
 // Set headers
 header("Cache-Control: public");
 header("Content-Description: File Transfer");
 header("Content-Disposition: attachment; filename=settings.ini");
 header("Content-Type: application/ini");
 header("Content-Transfer-Encoding: binary");

 // Read the file from disk
 readfile($file);
 }
2
N2Mystic

ファイルを読み込んでユーザーに送信するのは完全に安全であり、必ずしもWP_Filesystemメソッドに変換する必要はありません。書き込みだけが潜在的な問題です。

あなたがそうしたいのであれば、これは同等になります:

echo $wp_filesystem->get_contents( filename variable here );

また、 "put_contents"のファイル名は正しくありません。 "remote"ディレクトリは "local"ディレクトリと同じではない可能性があるため、WP_PLUGIN_DIRを使用する代わりに$wp_filesystem->wp_plugins_dir()を使用する必要があります。

$mySettingsFileLocation = $wp_filesystem->wp_plugins_dir() . '/my-settings/settings.ini';

2
Otto