Sto cercando di rimuovere tutto ciò che non è alfanumerico, o è uno spazio con _:Rimozione spazi e tutto ciò che non è alfanumerico
$filename = preg_replace("([^a-zA-Z0-9]|^\s)", "_", $filename);
Che cosa sto facendo di sbagliato qui, non sembra lavoro. Ho provato diverse combinazioni di regex ... (e generalmente non sono molto brillante).
Sono un po 'confused-- vuoi sostituire gli spazi con "_" o no? – climbage
Bene, per una cosa sei riuscito a trascurare alcuni caratteri: ''unichars -a '[\ p {Alpha} \ p {numero}]' '[^ a-zA-Z0-9]' | wc -l '== 14717'. Non è un buon punto di partenza. – tchrist
Dovresti inserire '\ s' nelle parentesi quadre. Altrimenti '^ \ s' corrisponde agli spazi bianchi all'inizio'^'del soggetto. Usa anche '/../' per racchiudere, le parentesi tonde servono solo per catturare. – mario