preg_replace corrisponde a intere parole in arabo

sto cercando di fare

$text = preg_replace('/\bمرحبا بك\b/', 'NEW', $text); 

ma non funziona, penso che questa function non supporti l'arabo

http://php.net/manual/en/function.preg-replace.php

Se il tuo text è in codifica UTF-8, aggiungi il modificatore 'u' al tuo model regex per il supporto Unicode.

 $text = preg_replace('/\bمرحبا بك\b/u', 'NEW', $text); 

Non aggiungere un \b alla fine della tua espressione regolare. La corrispondenza dovrebbe funzionare bene quando cambi il tuo codice in questo:

  $text = preg_replace('/\bمرحبا بك/', 'NEW', $text); 

Non puoi usare \b alla fine poiché c'è uno spazio nella parola che stai cercando di abbinare. \b non riesce ad abbinare nulla quando c'è un carattere non word nella parte che stai cercando di abbinare.

Prendi solo str_replace . Non c'è bisogno di regex.

 $text = 'hello bمرحبا بك world'; echo str_replace('bمرحبا بك', 'NEW', $text);