Basta andare sulla documentazione ufficiale relativa a ctype_alnum dove si legge
Quindi sì, gli spazi non sono compresi nell'espressione regolare.la funzione è equivalente a preg_match('/^[a-z0-9]*$/i', $text)
Come si risolve? Scrivendo il controllo esplicitando una regex che contenga anche il carattere spazio.
Secondo me però non basterebbe, perché anche gli indirizzi
via la strada qua sotto 2/b
via la strada qua sotto, 2
via la strada qua sotto n°2
ti darebbero problemi dato che / , ° non sono compresi.
In sostanza dovresti pensare a tutti i caratteri che si posono scrivere in un indirizzo e scrivere una regex adeguata.