将PHP Readfile转换为WP_FilesSystem

时间:2014-02-04 作者:N2Mystic

在下面的脚本中,我需要将readfile转换为等效的WP\\u文件系统。然而,我在法典中找不到同样的东西。非常感谢您的帮助。

此脚本保存设置。用户桌面/pc的ini文件。

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);
 }

1 个回复
最合适的回答,由SO网友:Otto 整理而成

读取要发送给用户的文件是完全安全的,不一定需要转换为WP\\u文件系统方法。只有写作才可能成为一个问题。

但是,如果您想这样做,这将是等效的:

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

另外,请注意,“put\\u contents”的文件名不正确。而不是使用WP_PLUGIN_DIR, 你需要使用$wp_filesystem->wp_plugins_dir() 因为“远程”目录可能与“本地”目录不同。

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

结束

相关推荐