web-dev-qa-db-fra.com

Formatage du tableau des accolades de WP base de données pour obtenir une sortie plus lisible

Par exemple. quand je veux éditer quelque chose dans ma base de données WP, j'ai vraiment mal à la tête. Parce que je vois quelque chose comme ça:

 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]";}

J'imagine que c'est une sorte de tableau, mais mon éditeur de texte ne peut pas le formater comme suit:

Array
(
    [a] => Apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)

comment cela peut-il être fait avec les données stockées dans la base de données PW? Existe-t-il un outil en ligne pour cela ou peut-être un plugin pour Sublime Text 2 ou N ++?

3
Derfder

Ceci est une valeur sérialisée , vous devez donc l'exécuter via maybe_unserialize() ou simplement unserialize() avant de le modifier.

Lorsque vous travaillez dans des plugins ou des thèmes, utilisez toujours les API: update_option() et get_option() par exemple. Ces fonctions annuleront/sérialiseront les valeurs pour vous, de sorte que vous n’aurez plus à vous soucier de la base de données.

Voir également:

Si vous avez besoin d’un simple convertisseur, utilisez les éléments internes de WordPress: un simple widget de tableau de bord et les fonctions intégrées.

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;
    });
}
4
fuxia