[PHP] Jak zamienić znaki HTML na encje?
Gdyby chcieć wyświetlić znaki HTML takie jak np. <> na stronie wstawiając je po prostu z klawiatury, jej wygląd zacząłby się psuć. Strona zaczęłaby się rozjeżdżać, elementy wyświetlałyby się niepoprawnie. To samo by się działo w przypadku pobrania nieprzefiltrowanego tekstu z bazy. Dlatego gdy zajdzie potrzeba przesłania znaków specjalnych do bazy danych, należy przed zapisem zamienić je na bezpieczne dane - w tym przypadku na encje HTML.
W PHP do konwersji znaków specjalnych na encje służy odpowiednia funkcja - htmlentities. Funkcja ta przyjmuje jako główny argument tekst, który ma zostać przefiltrowany i zwraca już bezpieczny, który można wyświetlić na stronie.
Przykład użycia htmlentities
<?php
$text = '<To jest przykładowy tekst ze znakami HTML>';
echo htmlentities($text, ENT_QUOTES);
W powyższym przykładzie znaki <> zostaną zamienione na <>.
Funkcja htmlentities przyjmuje jeszcze trzy opcjonalne argumenty:
- $flags int - flagi ustawiane poprzez stałe, domyślnie ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401
- $encoding string - kodowanie znaków, domyślnie będzie to wartość default_charset najprawdopodobniej UTF-8
- $double_encode bool - domyślnie true i włącza konwersję wszystkiego, jeśli zostanie ustawione na false istniejące encje nie będą konwertowane
Komentarze
Prześlij komentarz
Dzięki za komentarz!