Replace in a serialized array string

When you need to replace some values in a serialized array string, you can use the following Gist:


<?php
/**
* This function will replace a given text with a new value
* in a serialized string
*
* @param string $input serialized value to seek
* @param string $search text to be replaced
* @param string $replace replacement text
* @return string new serialized string
*/
function serialize_replace($input, $search, $replace) {
$ua = unserialize($input);
$replace_callback = function (&$value, $key, $data) {
if(!is_int($value))
$value = str_replace($data['search'], $data['replace'], $value);
};
array_walk_recursive($ua, $replace_callback , ['search' => $search, 'replace' => $replace]);
$b = serialize($ua);
return $b;
}

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...