Pracuję nad systemem CMS dla klienta, który musi edytować rzeczy i używać znaków specjalnych, takich jak ç
i ®
. Jednak nie chcę, aby wprowadzał kody znaków, takie jak ®
. Czy ktokolwiek wie, w jaki sposób można automatycznie przekonwertować te znaki za pomocą PHP?Konwertuj znaki specjalne na kody znaków HTML
Odpowiedz
Można używać htmlentities(), aby to zrobić.
php -r 'echo htmlentities("®ç", ENT_COMPAT, "UTF-8"), "\n";'
®ç
Aby włączyć podmioty z powrotem do czytelnego tekstu, należy html_entity_decode():
php -r 'echo html_entity_decode("®ç", ENT_COMPAT, "UTF-8"), "\n";'
®ç
Jeśli nie używasz Unicode, należy pominąć nazwę charset lub podać poprawną charset.
+1 dla określenia kodowania. –
Fantastyczna odpowiedź, która rozwiązuje problem, z którym zmaga się przez kilka lat. Warto zauważyć, że niektóre z innych odpowiedzi, które wspominają o wklejaniu kopii lub twardym kodowaniu wersji symbolu ALT KeyCode, nie będą działać, gdy przeniesiesz swój kod z systemu operacyjnego do systemu operacyjnego. –
używać Unicode i pokazać mu, jak skopiować & pastę z postaci mapie :-)
-1. Jaka jest odpowiedź? –
@Alin To nie jest * ta * zła odpowiedź, powiedziałbym - jeśli klient już używa znaków takich jak ç i ®, to za pomocą UTF-8 powiedzmy, że wejście, przechowywanie i wyjście CMS pozwoli musisz pozbyć się potrzebnych elementów HTML. Tak jak dzieje się to na tej stronie, na przykład w miejscu, w którym po prostu wpisałem "®", wysłałem ją na stronę, a strona wyświetlała ją jako "®" - spójrz na kod źródłowy tej strony i wygrałeś Nie widzisz tam encji HTML, tylko rzeczywistą, prawdziwą postać. –
@MattGibson Problem polega na tym, że używasz kontroli źródła i przenosisz kod tam iz powrotem pomiędzy systemami operacyjnymi opartymi na systemach uniksowych i systemami operacyjnymi Windows. Nauczyłem się na własnej skórze, że kody klawiszy ALT nie działają tak, jak chcesz, w systemach operacyjnych. –
Najłatwiej byłoby wykorzystanie UTF-8 od samego początek.
Ale można też automatycznie konwertować znaki z DOM:
$dom = new DOMDocument;
$dom->appendChild(new DOMText('© oui içi » '));
echo $dom->saveHtml();
wyjścia
© oui içi »
Proszę spojrzeć na funkcję htmlentities. Zajmuje to ciąg znaków i konwertuje znaki elementów na ich encje HTML. Możesz określić kodowanie ciągu, aby było spójne z wprowadzeniem użytkownika.
Dziękujemy! To działa :) –
- 1. Jak usunąć znaki specjalne html?
- 2. Jak konwertować znaki specjalne na encje html?
- 3. Jak uciec znaki specjalne HTML w Javie?
- 4. Escape specjalne znaki HTML w Pythonie
- 5. Jak konwertować znaki specjalne na zwykłe znaki?
- 6. Konwertuj znaki specjalne (inny język) na angielski w PHP
- 7. Konwertuj akcenty na HTML, ale zignoruj tagi
- 8. znaki specjalne w sed
- 9. Sprawdź znaki specjalne (/ * - + _ @ i $ #%) w ciągu znaków?
- 10. Regex usuń znaki specjalne
- 11. twig striptags i html specjalne znaki
- 12. specjalne znaki w id tagów html
- 13. php regex escape znaki specjalne
- 14. znaki specjalne zastąpić
- 15. wget i znaki specjalne
- 16. MySQL Wstaw specjalne znaki
- 17. Konwertuj ciąg znaków HTML na obrazki
- 18. Zamień kody HTML odpowiednimi znakami w Javie
- 19. Znaki specjalne w pliku web.config
- 20. Znaki specjalne w Androidzie sms
- 21. usuwania akcent i znaki specjalne
- 22. Java zastępuje znaki specjalne
- 23. Znaki specjalne w PHP/MySQL
- 24. Android Sqlite Specjalne znaki
- 25. Konwertuj ciąg znaków z kodami ASCII hex na znaki
- 26. znaki specjalne z Net :: Twitter :: Lite
- 27. Kody jednostek HTML do tekstu
- 28. Specjalne znaki w zmiennej kątowej znajduje się w pliku HTML
- 29. warunkowo ucieczki specjalne znaki XML
- 30. filtry garbling Maven znaki specjalne
Błąd. Po prostu upewnij się, że kodowanie znaków jest spójne (tzn. Po prostu użyj UTF-8 w całości) i nie musisz konwertować tych znaków, aby były idealnie wyświetlane. – Quentin