Jak w php usunąć znaki, które są spoza ASCII


Pracując z różnego rodzaju skryptami i stronami w PHP stykamy się z obróbką tekstu. Do tego dochodzi znajomość zagadnień związanych ze znakami, które stanowią część alfabetu dla danego języka, a które nie są dostępne w innymi Państwie. Znaczący problem bywał do tej pory z polskimi znakami, gdyż jak wiemy polskim standardem jest ISO-8859-2 natomiast M$ narzucił nam własny standard windows-1250, który jest z krajowym standardem nie kompatybilny.
Ciekawiej sytuacj wygląda gdy mamy do czynienia ze znaczkami, których ni jak nie da się podejść w naszym języku, mam tu na myśli znaki typu äó. Znaki te mogły się tu znaleźć np. po przekodowaniu znaków krajowych danego języka na utf-8.
W tej sytuacji możemy użyć w języku PHP tzw. podstawiania przy użyciu dopasowania z wyrażeniami regularnymi. Przy ich pomocy można z łatwością za pomocą prostych składni pozbyć się sporej grupy niepotrzebnych znaczków.

Przykład jak usunąć znaki tzw. nie ASCII:

$string = "Remove these characters: äó";
$string = preg_replace('/[^(\x20-\x7F)]*/','', $string);

W pierwszej linii mamy przykład tekstu gdzie na końcu są znaki nie do rozczytania.
Druga linia zawiera funkcję, która za pomocą wyrażeń regularnych zrobi podmianę:
- pierwszy argument to wyrażenie definiujące, że wszystkie znaki spoza ASCII 20-7F powinny być zmienione
- drugi argument mówi, że zmieniamy na puste
- trzeci argument to nasz tekst

 

Opublikowane w kategriach: Ascii, PHP

Na wesoło ;)

Facet żył na bezludnej wyspie. Miał tam wszystko. Jedzenie, picie, dach nad głową, brakowało mu jednak kobiety. 50 metrów od jego wyspy była druga wyspa, pełna pięknych, wyuzdanych kobiet. Codzień wieczorem obserwował je gdy wyczyniały harce rodem z Lesbos. A one przywoływały go, a on nie mógł płynąć, gdyż akurat w tym miejscu zawsze roiło się od rekinów... A życie było mu milsze niż sex... Pewnego dnia, gdy siedział sobie na brzegu, obserwując kobiety z drugiej wyspy, podeszła do niego złota żabka.
-Cześć - mówi. - Jestem złota żabka. Moge spełnic Twe jedno życzenie. Jedno i tylko jedno. Zastanów się dobrze, bo szansę masz jedyną i ostatnią.
Gość się popatrzył i mówi:
-Walnij mi tu proszę mostek!
Na to żabka stając na tylnich łapkach, wyginając się do tyłu:
-Tożes wydumał....