0

我必须从 wordpress 数据库中获取 wp-options 表,并且必须对序列化数据进行反序列化。我从数据库表中获取选项值的代码写在下面。

function option_value_change () {
  global $wpdb;
  $myrows = $wpdb->get_results( "SELECT *
  FROM `wp_options`");
    foreach ($myrows as $rows){
      $option = get_option($rows->option_name);
      modify_domain_name($option);
            echo $rows-> option_value ."<br />";
    }
}

现在我想检查序列化数据。我如何将数据检查为序列化数据。如果那是序列化数据,那么我该如何反序列化该数据。

4

2 回答 2

0

也许检查它是一个对象还是一个数组,如果不是,则反序列化它。

<?php
if (!is_array($var) && !is_object($var)) {
  $var = unserialize($var);
}
?>

或者,根据您的数据是肯定是对象/数组还是序列化数据,您也可以只测试它是否是字符串。

<?php
if (is_string($var)) {
  $var = unserialize($var);
}
?>
于 2013-02-12T06:51:08.563 回答
0

Wordpress 有一个名为maybe_unserialize()的函数,它适合你的工作。

顾名思义,该函数只有在变量被序列化时才会对其进行反序列化。

编辑:

我不知道您当前的需求,但以防万一您不知道,WordPress 有一个get_option()函数,它从表中读取一个值options并在需要时将其反序列化,然后再将其返回给您。

于 2013-02-12T07:01:32.437 回答