Aşağıdaki işlev "test-backup.ini" dosyasını alır, ayrıştırır ve değerleri update_option() yöntemi aracılığıyla DB'ye girer.Dosyanın değeri ünlem işareti ve eşittir işaretleri içerdiğinde parse_ini_file() yöntemiyle yapılan sözdizimi hatası
Ancak ini dosyasının değerleri exlamation noktaları gibi özel karakterleri ve eşittir işareti (=) (ve diğerlerini tahmin ediyorum) onun parse_ini_file bir PHP sözdizimi hatası atma, ($ dosya) içerdiğinde (!):
sözdizimi hatası, beklenmedik "!", vs ...
test backup.ini dosyası olarak bu içeriğin verilen örnek için...
[settings]
line1 = asc
line2 = /*.blog ul li {margin-bottom:0 !important;}*/
line3 = true
line4 = <meta name="google-site-verification" content="" />
ben "!" için satır 2'de sözdizimi hataları olsun ve için 4. hatta "="
Nasıl bu() update_option geçirilen zaman korunmuş olduğunu bu karakterler ile başa parse_ini_file geçirmeden önce $ dosyası filtre edilmelidir() diyoruz? |
Karakterler {}:
Ben şimdiye kadar tespit ettik Bütün bu & ~! [()" Her yerde anahtar kullanılan ve değerinde bir özel anlama sahip olmamalıdır.
$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';
}
?>
iş gibi gözüküyor yardımcı olur tek tırnaklı (kesme işaretleri). – lolesque