Przeszukując również Internet i tę stronę, znalazłem kilka tematów na ten temat. Chodzi o to, że istnieją niezliczone rozwiązania, jeśli wstawione ciągi muszą zawierać tylko znaki alfabetu łacińskiego, ale gdy sprawa wymaga tekstu innych alfabetów, staje się to nieco trudne.PHP usuwa symbole ze stringów
Czy istnieje sposób, w jaki mogę usunąć w PHP wszystkie symbole z ciągu, ale pozostawić rzeczywiste litery wszystkich alfabetów UTF-8? Próbowałem już stworzyć tablicę wszystkich znaków mojej klawiatury, a następnie używając str_replace lub preg_replace je usunąć, ale potem odkryłem, że różne kraje mają również inne klawiatury, które czasami zawierają różne symbole. Na przykład moja klawiatura qwerty nie ma symbolu £
, który może posiadać brytyjska klawiatura.
Wiem, że to dziwne pytanie, zastanawiam się tylko, czy istnieje proste rozwiązanie, które mogłem przegapić.
Każda pomoc będzie bardzo ceniona!
EDIT: OK Po jakiś lepszy i rozszerzone Google-ing I odkryli, że poniższe wyrażenie regularne działa poprawnie, co muszę i utrzymuje wszystkie litery alfabetu wszystkich typów jednocześnie usuwa wszystkie symbole. Dzielę się tym tutaj, na wypadek gdyby ktoś inny musiał zrobić to samo.
$string = preg_replace('/[^\p{L}\p{N}\s]/u', '', $string);
Uwielbiam fakt, że jest to zgodne z UTF-8. – HoldOffHunger