Sono d'accordo con il commento, quello che stai facendo è molto subdolo, ma dopo 10 anni in questo biz posso attestare una cosa: metà del codice che ottieni è così contorto che potrebbe anche essere stato minimizzato, e davvero i nomi di funzioni/var sono così spesso completamente arbitrari, ho modificato min js e non era molto più fastidioso di qualche codice non ancora risolto.
Non sono riuscito a trovare alcun programma/script di questo tipo, molto probabilmente perché questo è un po 'contrario allo spirito di PHP e un po' subdolo, mai meno.
Primo: Php non è sensibile allo spazio bianco, quindi il primo passo è quello di rimuovere tutte le nuove righe e spazi bianchi al di fuori della stringa.
Ciò renderebbe difficile il pasticcio con lo stagnino medio, un programmatore intermedio dovrebbe solo trovare e sostituire tutto; {} con $ 1 \ n o qualcosa del genere.
Il prossimo passo sarebbe ottenere get_defined_functions e salvare quell'array (la chiave 'user' nell'array restituito), per poterlo fare è necessario includere tutti i file.
Se si tratta di codice oo, è necessario anche get_defined_classes. Salva quell'array.
In sostanza, è necessario ottenere le variabili, i metodi e le istanze di classe, sarà necessario istanziare la classe e get_object_vars su di esso, e si può curiosare e vedere che è possibile ottenere un sacco di altre informazioni, come le costanti e classe vars ecc.
Quindi si prendono quegli elenchi, li si passa in rassegna, si crea un nome univoco per ciascuna cosa, quindi si preme preg_replace o si va a str_replace in tutti i file.
Assicurarsi di eseguire questa operazione su una copia di prova e vedere quali errori si ottengono.
Anche se, per essere chiari, c'è un posto speciale nell'inferno riservato a persone che nascondono per oscuramento.
Check out: get_defined_functionsget_declared_classes e basta seguire i collegamenti per vedere cosa si può fare.
Se stai cercando istanze specifiche di codice, questo è semplice str = file_get_contents (nomefile) e str = preg_replace ('/ function $ var /', ...) Prendi spunto. Basta guardare queste funzioni su php.net e avrai tutto ciò di cui hai bisogno. –
Se hai bisogno di aiuto con regex per le sostituzioni, usa gskinner's awesome http://www.gskinner.com/RegExr/ –
Stiamo parlando di codice generato automaticamente, questo sembra già abbastanza offuscato. Non spenderei un secondo per modificare questo codice. Incolpare i creatori di un compilatore c per creare binari offuscati? – TheHippo