it-swarm.com.de

Konvertieren PHP readfile to WP_Filesystem

Im folgenden Skript muss ich die Readfile in die Entsprechung WP_filesytem konvertieren. Im Codex kann ich das allerdings nicht finden. Jede Hilfe sehr geschätzt.

Dieses Skript speichert die Datei settings.ini auf dem Desktop/PC des Benutzers.

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

Das Lesen einer an den Benutzer zu sendenden Datei ist absolut sicher und muss nicht unbedingt in die WP_Filesystem-Methoden konvertiert werden. Nur das Schreiben ist möglicherweise ein Problem.

Wenn Sie dies jedoch möchten, wäre dies das Äquivalent:

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

Beachten Sie außerdem, dass Ihr Dateiname für "put_contents" falsch ist. Anstatt WP_PLUGIN_DIR zu verwenden, müssen Sie $wp_filesystem->wp_plugins_dir() verwenden, da das Verzeichnis "remote" möglicherweise nicht mit dem Verzeichnis "local" identisch ist.

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

2
Otto