Следующая функция берет файл "test-backup.ini", анализирует его и вводит значения в базу данных с помощью метода update_option ().
Однако, когда значения ini-файла содержат специальные символы, такие как восклицательные знаки (!) И знаки равенства (=) (и другие, я полагаю), это вызывает синтаксическую ошибку PHP в parse_ini_file ($ file):
Синтаксическая ошибка, неожиданная "!" и т.д ...
Например, учитывая это содержимое как файл test-backup.ini ...
[settings]
line1 = asc
line2 = /*.blog ul li {margin-bottom:0 !important;}*/
line3 = true
line4 = <meta name="google-site-verification" content="" />
Я получаю синтаксические ошибки в строке 2 для "!" и в строке 4 для "="
Как мне отфильтровать файл $ перед его передачей в parse_ini_file (), чтобы обработать эти символы, чтобы они сохранялись при передаче в вызов update_option ()?
Все, что я На данный момент обнаружено следующее:
Символы {} | & ~! [() "не должны использоваться где-либо в ключе и имеют особое значение в значении .
$file = WP_PLUGIN_DIR.'/test/test-backup.ini';
if (file_exists($file) && is_readable($file))
{
$ini_array = parse_ini_file($file); //errors when value contains =, !, etc
foreach ($ini_array as $key=>$value) {
update_option($key, $value);
}
echo 'The settings have been saved';
}
else
{
echo 'alternate response here';
}
?>