我正在尝试格式化下面创建的文件,以便每个名称/值对都在自己的行上
我相信这很容易,但我的.ini文件根本没有格式化换行符。我错过了什么?
function wpseTest()
{
$query = "SELECT option_name, option_value FROM wp_options where option_name like 'test|_%' escape '|' AND option_value > ''";
global $wpdb;
$matches = $wpdb->get_results($query);
$mySettings = '[settings]'r'n';
foreach ($matches as $result){
$mySettings .= $result->option_name;
$mySettings .= ' = ';
$mySettings .= $result->option_value;
$mySettings .= ''r'n';
}
$mySettingsFileLocation = WP_PLUGIN_DIR.'/test/settings-backup.ini';
$mySettingsFile = fopen($mySettingsFileLocation, 'w');
fwrite($mySettingsFile, $mySettings);
fclose($mySettingsFile);
}
像'r
和'n
这样的特殊字符不会用单引号来解释。请改用双引号。
$mySettings = "[settings]'r'n";
和
$mySettings .= "'r'n";
您可以使用依赖于平台的常量PHP_EOL
来代替
$mySettings = '[settings]' . PHP_EOL;
// ..
$mySettings .= PHP_EOL;
// Outputs: This will not expand: 'n a newline
echo 'This will not expand: 'n a newline';
用双引号
function wpseTest()
{
$query = "SELECT option_name, option_value FROM wp_options where option_name like 'test|_%' escape '|' AND option_value > ''";
global $wpdb;
$matches = $wpdb->get_results($query);
$mySettings = "[settings]'r'n";
foreach ($matches as $result){
$mySettings .= $result->option_name;
$mySettings .= ' = ';
$mySettings .= $result->option_value;
$mySettings .= "'r'n";
}
$mySettingsFileLocation = WP_PLUGIN_DIR.'/test/settings-backup.ini';
$mySettingsFile = fopen($mySettingsFileLocation, 'w');
fwrite($mySettingsFile, $mySettings);
fclose($mySettingsFile);
}