Originariamente inviato da kuarl
t'ho detto che gli slashati li levo a prescindere ... meglio usare un

$__sd = Array( md5( "\'" ), md5( "\\\"" ) );
$txt = str_replace( Array( "\'", "\\\"" ), $__sd, $txt );

che appesantire la preg ... che una volta privata degli slashati va benissimo cosi' :

"/(?U)('|\")([^\a]*)\\1/sm"


ora l'unico inghippo e' riuscire a togliere i commenti dal file, poiche' questi potrebbero generare casini ...

difatti qui in mezzo:

/*
awi oidaji OIJ "j ijda oidoiawo jdoij' jIJ Diaojw di oj
*/

ci scrivi quello che vuoi ...


la sequenza provata e apparentemente funzionante e' questa:

// levo gli slashati:
$__sd = Array( md5( "\'" ), md5( "\\\"" ) );
$txt = str_replace( Array( "\'", "\\\"" ), $__sd, $txt );

// levo i commenti tra /* e */ :
$txt = preg_replace( "/(?U)([[:space:]]*)(\/\*)([^\a]*)(\*\/)([[:space:]]*)/", "\n", $txt );

// levo le stringhe:
$txt = preg_replace( "/(?U)('|\")([^\a]*)\\1/sm", "[stringa]", $txt );

// levo i commenti a singola linea:
$txt = preg_replace( "/(?U)(\/\/)([^\a]*)(\r\n)/", "\n", $txt );

ora ho il file privo di qualunque tipo di stringa e contenente le sole variabili ... fammi / fatemi sapere se e' cosi' ...




unico dubbio
non ho testato e non saprei ma forse se una variabile avesse:

$var = "aopwdkkowa k /* odwakodwak */ kdowa kdowa ";

la parte al centro verrebbe eliminata ... grossa crisi