Hai verificato che in config.php, quando esegui il ciclo, tutte le variabili che utilizzi in str_replace siano valorizzate?
Inoltre ti faccio presente che con il tuo ciclo avviene una sostituzione del valore di $variabile, questo ovviamente non è un errore (anzi, probabilmente lo fai apposta), ma tienilo presente nelle operazioni che fai successivamente con $variabile.
Per maggiore elasticità del codice, ti consiglio di sostituire il valore numerico nel ciclo for (19) con un count sull'array $Special.
Sono solo accorgimenti, non credo ti risolveranno il problema.
Non so cos'altro dirti

Ciao,
Gabriele.