Tak na tom neni nic principielne spatne. Proste je potreba spustit externi tool (pspell), coz je ostatne u spellcheckingu casty zpusob implementace. Pokud ma zbytek programu kontrolu nad tim co je v $cmd (coz se zda, ze celkem je: $bin je z dokumentace, $lang nevim, ale doufam ze je z omezeny na [_a-z0-9]* a $file je vystup metody _tmpfile(). Ta by (doufam) nemela vratit jmeno, ktere by mohl shell interpretovat jinak nez jako jmeno jednoho souboru.
Lepsi by samozrjeme bylo spustit prikaz a predat mu argumenty tak, jako v syscallu execvp, takze by to nebylo vyhodnocovane shellem, ale takovou funkci ted v php nevidim.