Potresti fare in tal modo:
1. $lung_stringa = strlen($stringa);
2. $meta_stringa = floor($lung_stringa/2);
3. $str1 = substr($stringa, 0, $meta_stringa-1);
4. $str2 = substr($stringa, $meta_stringa);
In pratica per prima cosa con l'istruzione 1 prendo la lunghezza della stringa.
Con la seconda istruzione considero la metà della lunghezza della stringa, valore arrotondato per difetto. Se poi lo vuoi arrotondare per eccesso allora al post di floor puoi usare ceil.
Questo perché tu hai fatto l'esempio con stringa avente 4 caratteri. Ma se ne contiene 9? In tal caso io metto in $str1 i primi 4 caratteri (vedi istr. 3) e in $str2 i restanti 5 (istr. $str2)
Ciao.