serialize()
我对和有一些问题unserialize()
。
我正在为 Wordpress 编写一个函数,该函数实际上是一个设置页面,我正在尝试使用两个输入字段导出和导入设置数组。
代码(和页面)有点长,所以我把它贴在 PASTEBIN 上,这样更舒服一些。
我遇到的问题是 wordpress 使用设置 API 将选项(或设置)保存为序列化数组。
我拥有的功能可以成功显示以下选项:
a:10:{s:24:"brsa_copyright_meta_text";s:0:"";s:25:"brsa_remove_menu_css_list";s:0:"";s:19:"brsa_remove_submenu";s:0:"";s:21:"brsa_remove_menu_list";s:0:"";s:15:"brsa_footer_txt";s:0:"";s:22:"brsa_dash_wdgt_content";s:0:"";s:36:"brsa_add_custom_login_message_string";s:0:"";s:21:"brsa_login_url_string";s:0:"";s:21:"brsa_login_alt_string";s:0:"";s:14:"brsa_login_img";s:0:"";}
没关系。它是序列化的,但是当我尝试将其插入数据库(或通过按导入按钮将其显示在另一个字段上)时,escaped
我认为它实际上是,并且无论如何,它不会以序列化的方式插入数据库,但是作为一个字符串..
a:10:{s:24:\"brsa_copyright_meta_text\";s:0:\"\";s:25:\"brsa_remove_menu_css_list\";s:0:\"\";s:19:\"brsa_remove_submenu\";s:0:\"\";s:21:\"brsa_remove_menu_list\";s:0:\"\";s:15:\"brsa_footer_txt\";s:0:\"\";s:22:\"brsa_dash_wdgt_content\";s:0:\"\";s:36:\"brsa_add_custom_login_message_string\";s:0:\"\";s:21:\"brsa_login_url_string\";s:0:\"\";s:21:\"brsa_login_alt_string\";s:0:\"\";s:14:\"brsa_login_img\";s:0:\"\";}
..使整个代码无法使用。代码的相对部分是这样的:
$my_options = get_option( 'o99_brsa_settings' );
$currentsettings = "";
if ( isset( $_POST['import'] ) && trim($_POST['exccc']) != "" ) {
$currentsettings = $_POST['exccc'];
update_option( 'o99_brsa_settings', serialize($currentsettings));
} elseif ( isset( $my_options ) && ( $my_options != "" ) ) {
if ($o99_brsa_options['brsa_keep_settings_exp'] !='') {
$currentsettings = $o99_brsa_options['brsa_keep_settings_exp'];
} else {
$currentsettings = serialize( $my_options );
}
}
尽管我确实相信应该查看整个代码以了解它应该如何工作。
除了它不起作用的事实之外,我不太确定问题是什么,但首先我想知道为什么值是/escaped/
以及如何防止它?
任何其他帮助也将不胜感激..