在下面的脚本中,我需要将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);
}
最合适的回答,由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\';