php preg_replace, кроме буквенно-цифровых, пробелов и букв с акцентом

Я хочу убрать строку из всех символов, кроме: буквенно-цифровых символов, пробелов и букв с акцентом.

Я получил его на работу для всего, кроме акцентированных букв:

$fname = preg_replace("/[^\w\space/", "", $fname);

Что мне нужно изменить, чтобы разрешить акцентированные буквы в выводе?

4 ответа

Решение

Когда я изо всех сил пытался заставить вещи работать, я нашел ответ сам, поэтому я решил поделиться им с вами:

$fname = preg_replace("/[^\w\space\pL]/", "", $fname);

Часть "pL" соответствует чему-либо в категории букв Unicode, поэтому в выводе допускаются акцентированные буквы.

Я тоже сталкиваюсь с такими проблемами, я нашел решение и позвольте мне поделиться им сейчас

Чтобы удалить буквы с диакритическими знаками â из строки
mysqli_set_charset($con,"utf8");

      $price = "₹ 240.00";

$price2 = preg_replace('/[^(\x20-\x7F)]*/','', $price);

Результат: 240.00
это помогает удалить из строки символ типа «Удалить» с помощью preg_replace.
Спасибо

я нашел решение.

Акцентированное письмо

      $str = 'paulraâj píc - accountant and knows Bilingüe';

Удаление буквы с акцентом

      echo '<br>' .preg_replace('/[^a-zA-Z0-9_ -]/s', '', $str);

Результат: paulraj pc - бухгалтер и знает, что Bilinge
wow отлично работает
Спасибо

Пожалуйста, используйте это:

$fname = preg_replace("/[^ \w]+/", "", $fname);
Другие вопросы по тегам