Nel mio cms faccio uso della libreria mbstring per gestire stringhe multibyte nel caso del set di caratteri UTF-8.
In pratica invece di usare substr() ad esempio, c'è mb_substr(), invece di strpos() mb_strpos() e così via.
Può capitare (per ora non mi è capitato, ma non si sa mai) che la libreria "mbstring" non sia stata attivata e quindi necessito che, con tutti i pericoli che ne possono derivare ma magari non è il caso se non si usa utf-8, tutte le chiamate a mb_strpos() siano redirezionate alla strpos() liscia, e così via per tutte le funzioni mb_xxx che uso.
E faccio così:
Il caso di strlen() è il più fortunato perchè accetta un numero fisso di argomenti, ma ci sono altre funzioni che ne accettano 1 o 2 opzionali, ed in quel caso il PHP mi spara un Warning.Codice PHP:
if(!function_exists('mb_internal_encoding'))
{
eval('function mb_strlen($a) {return strlen($a);}');
// ...
// ...
// ...
}
Come gestire il caso di numero di argomenti variabili? Possibilmente in un'unica riga senza invocare func_get_args() et company, anche se non vedo come?