![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 13.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Wiatjcie mam problem z encjami numerycznymi. Problem polega na tym, że jak ktoś wpisuje tekst do strony cudysłów i znak - zamieniają się na encje numeryczne. Próbowalem wszytkich funkcji by je zmienić przy odczycie z bazy MySQL by zmieniły się w znaki ale nic czami encja jest połączona z wyrazem.
Zastosowalem ta funkcje ale nie dział. ze strony http://pl.php.net/manual/pl/function.html-entity-decode.php function unhtmlentities($string) { // replace numeric entities $string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $string); $string = preg_replace('~&#([0-9]+);~e', 'chr("\\1")', $string); // replace literal entities $trans_tbl = get_html_translation_table(HTML_ENTITIES); $trans_tbl = array_flip($trans_tbl); return strtr($string, $trans_tbl); } $c = unhtmlentities($a); Proszę o pomoc |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 12 Dołączył: 9.10.2008 Skąd: Tricity.Rumia() Ostrzeżenie: (0%) ![]() ![]() |
jak wyglądają wartości zmiennych $a, $c a jak oczekiwane $c ... w jaki sposób pobierasz dane z bazy? jak wygdlaczego nie używasz php 4.3+ ? I jeszcze wyjaśnij to:
Cytat jak ktoś wpisuje tekst do strony cudysłów i znak
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 13.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Sprawa wygląda tak. Ktoś przekleja z worda tekst do formularza na stronie. To jest wartość $a.
np. wpisywany do formularza " to tylko niektóre z tematów II Ogólnopolskiej Konferencji" zapisany do bazy wygląda tak .#8211; to tylko niektóre z tematów II Ogólnopolskiej Konferencji .#8222 <FORM ENCTYPE="multipart/form-data" ACTION="dodanie.php?id=<?PHP echo $id ?>" METHOD=POST name="edycja" accept-charset="iso-8859-2"> Ten zapis accept-charset="iso-8859-2" powinnien zmienić encje na znaki ale tego nie robi. Tekst ładuje się do bazy już z encami numerycznym. Czyli wynika, że samo form prztwarz znaki na encje. Jak się wpisuje cudzysłów ręcznie przesyła poprawnie. Próbowałem inych sposobów by zmienić te encje, ale też nie działały. Podałem ten przykład bo sądzę że jest on dobrze zrobiony. Już wiem do MySQL wpisujują się encje i potem sa odczytywane jako encje a nie znaki. Pozdrawiam jak wyglądają wartości zmiennych $a, $c a jak oczekiwane $c ... w jaki sposób pobierasz dane z bazy? jak wygdlaczego nie używasz php 4.3+ ? I jeszcze wyjaśnij to:
Ten post edytował irekpil 14.11.2008, 17:03:25 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 06:44 |