2012-10-23 21 views
5

Desidero rimuovere tutti i caratteri non arabi, non inglesi e non numerici da una stringa, ad eccezione dei trattini (-).Caratteri non alfanumerici di striscia dall'inglese UTF8 + stringa inglese

sono riuscito a farlo per caratteri non inglesi alfanumerici come questo:

$slug = ereg_replace('[^A-Za-z0-9-]', '', $string); 

Ma per i caratteri alfanumerici non arabi ho cercato di fare in questo modo:

$slug = ereg_replace('\p{InArabic}', '', $string); 

ma didnt striscia la caratteri non alfanumerici! Ho anche provato this answer ma non ha funzionato neanche, restituisce sempre '0' !!

$slug = preg_replace('/[^\x{0600}-\x{06FF}A-Za-z0-9-]/u','', $string); 

Speriamo che qualcuno possa aiutarmi.

+1

'ereg_replace' è deprecato. Il regex con 'preg_replace' dovrebbe funzionare. Potresti fornire esempi di stringhe in cui non funziona? – Toto

+0

Qual è l'output di 'preg_last_error()'? Lo snippet di codice funziona. –

+0

Grazie M42, che ha funzionato con l'aiuto della risposta "xdazz", grazie a tutti ragazzi. –

risposta

9

provare il seguito:

$slug = preg_replace('/[^\p{Arabic}\da-z-]/ui', '', $string); 
+0

Grazie mille xdazz che ha funzionato come un fascino! –

+0

@WaleedAsender Prego :) – xdazz

+0

buono, ha funzionato per me, grazie –

Problemi correlati