Estrarre valori da qualsiasi classe!

Dopo due giorni di ricerca e ammaccamenti di muri casalinghi ho trovato il modo di estrarre una variabile protetta da una classe non mia, il tutto per creare un’aggiunta a tale classe.

Si parla di GroceryCrud e mi serviva il nome della tabella scelta dall’utente per poter modificare i permessi di visualizzazione di alcuni elementi blablablabla.

Basterà usare la seguente riga:


$valore = valueFromObject($obj,"chiave_del_valore");

Ecco il codice (racchiuso in una funzione):


	function valueFromObject($object,$whatToSearch){
		$state = unserialize(
				preg_replace(
					'/^O:\d+:"[^"]++"/',
					'O:'.strlen("portapipe").':"portapipe"',
					serialize($object)
				)
			);
		$state = json_encode((array)$state);
		$state2 = strpos($state,$whatToSearch.'":"');
		$state = str_replace($whatToSearch.'":"','',substr($state, $state2));
		$state2 = strpos($state,'"');
		$return =  substr($state, 0, $state2);
		echo $return;
		return $return;
	}

Attenzione però! Funziona sulla prima chiave, perciò se vuoi qualcosa di specifico passa l’oggetto dove trovare subito la chiave!

Annunci

, , , , , , ,

  1. Lascia un commento

Rispondi

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

Logo 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 )

Google+ photo

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

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: