格式化WP数据库中的花括号数组以获得更具可读性的输出

时间:2013-05-22 作者:Derfder

E、 当我想在我的WP数据库中编辑一些东西时,我真的很头痛。因为我看到这样的情况:

 a:92:{s:47:"category/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$";s:52:"index.php?category_name=$matches[1]&feed=$matches[2]";s:42:"category/(.+?)/(feed|rdf|rss|rss2|atom)/?$";s:52:"index.php?category_name=$matches[1]&feed=$matches[2]";s:35:"category/(.+?)/page/?([0-9]{1,})/?$";s:53:"index.php?category_name=$matches[1]&paged=$matches[2]";s:17:"category/(.+?)/?$";s:35:"index.php?category_name=$matches[1]";s:44:"tag/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$";s:42:"index.php?ta-9]{1,})/?$";s:50:"index.php?attachment=$matches[1]&cpage=$matches[2]";}
我猜这是某种数组,但我的文本编辑器无法将其格式化为以下格式:

Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)
如何处理PW数据库中存储的数据?是否有一些在线工具或Sublime Text 2或N++的插件?

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

这是一个serialized value, 所以你应该仔细检查一下maybe_unserialize() 或者只是unserialize() 在编辑之前。

使用插件或主题时,请始终使用API:update_option()get_option() 例如这些函数将为您取消/序列化这些值,因此您不必担心数据库。

另请参见:

  • Settings API with arrays example
  • How to store widget fields data as an array?
  • How do I retrieve multi-dimensional arrays from the wp_postmeta table, & display on a website?
  • WordPress serializes options and meta for you.

    enter image description here

    <?php # -*- coding: utf-8 -*-
    /* Plugin Name: Unserialize Dashboard Widget */
    
    add_action( \'wp_loaded\', \'t5_unserialize_dashboard_widget\' );
    
    function t5_unserialize_dashboard_widget()
    {
        $handle = \'t5sdw\';
    
        add_action( \'wp_dashboard_setup\', function() use ( $handle ) {
    
            wp_add_dashboard_widget(
                $handle . \'_widget\',
                \'Unserialize\',
                function() use ( $handle ) {
    
                    print \'<form action="\' . admin_url( \'admin-post.php?action=\' . $handle ) . \'" method="post">\';
                    wp_nonce_field( \'update\', $handle . \'_nonce\' );
                    $content = esc_textarea( var_export( maybe_unserialize( get_option( $handle ) ), TRUE ) );
    
                    print "<textarea name=\'$handle\' class=\'code large-text\' rows=10>$content</textarea><p>";
                    submit_button( \'Unserialize\', \'primary\', $handle . \'_unserialize\', FALSE );
                    print \'</p></form>\';
                }
            );
        });
    
        add_action( "admin_post_$handle", function() use ( $handle ) {
    
            if ( ! isset ( $_POST[ $handle ] )
                or ! wp_verify_nonce( $_POST[ $handle . \'_nonce\' ], \'update\' ) )
                return;
    
            parse_str( file_get_contents( \'php://input\', \'r\'), $arr );
            update_option( $handle, $arr[ $handle ] );
            wp_redirect( admin_url( \'/\' ) );
            exit;
        });
    }
    

结束

相关推荐

在wp_database中的哪些位置定义了可用角色?

我上榜是为了测试我在多站点网络上使用的插件的私有beta版。插件作者在其中有添加自定义角色的代码。他们有一个bug,它删除了为用户提供除一个自定义角色之外的任何角色的功能。当我访问时../wp-admin/network/site-users.php, “添加用户”角色下拉列表仅显示此插件添加的一个角色。change role下拉菜单显示所有WP默认角色,以及此插件和其他插件添加的一些额外角色。如果我试图将一个用户更改为这些角色之一,我会得到一个“你不能给用户这个角色”错误页面。我一直在与开发人员讨论这个