![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 17.03.2004 Skąd: Gorzów Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich.
Jako że pierwszy raz to dobry wieczór. Mam taki oto problem: Za pomocż php z bazy pobieram sobie jakieś tam dane i robie z tego xml, używając najprostszego kodu pod słońcem: [php:1:1da1dc1325]<?php $newsy=array(); $i=0; $pyt=mysql_query("SELECT * FROM spispod ORDER BY ID") or die (mysql_error()); $myxml="<?xml version="1.0" encoding="UTF-8" ?> <calemenu>"; while($odp=mysql_fetch_object($pyt)) { $myxml.="<menu id="".$i.""> <nazwa>".$odp->nazwa."</nazwa> <nazwatxt>".$odp->nazwatxt."</nazwatxt> </menu>"; $i++; } $myxml.="</calemenu>"; echo $myxml; ?>[/php:1:1da1dc1325] plik php jest zapisany w utf-8, mimo to polskie literki (docelowo hiszpańskie) nie pokazują się, wyświetla się taki błąd: Cytat Znaleziono nieprawidłowy znak w zawartości tekstowej. Błąd podczas przetwarzania zasobu 'http://localhost/cv/php/menu.php'. Wiersz 16, Pozycja 13
<nazwa> siedzę nad tym juz długo. Wiecie może jak ten problem rozwiązać? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
A w bazie masz jakie kodowanie? Też utf czy może coś innego? Jeśli coś innego zainteresuj się funkcją iconv().
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 17.03.2004 Skąd: Gorzów Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
nie mam pojęcia jak sprawdzić kodowanie w jakim to jest w bazie zapisane. wiem tylko, że tabele są w myISAM, ale to nie o to chodzi. mógłbyś powiedzić jak to sprawdzić? z iconv() chyba nie bedzie dobrze, bo nie moge nic dodawać, ani grzebać w ustawieniach php na serwerze. po prostu nie mam takich uprawnień.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 17.03.2004 Skąd: Gorzów Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
naprawde nikt nie wie. ehh a myslalem ze bedzie tak latwo i fajnie....
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
Najpierw sprawdź, jakie kodowanie masz w bazie. Jak? Wygeneruj tego xmla z różnymi kodowaniami, i zobacz, przy którym nie będziesz miał krzaków a polskie litery. Następnie poszukaj funkcji konwertującej z jednego kodowania na inne. Założę się, że jest takich funkcji sporo.
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 17.03.2004 Skąd: Gorzów Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
Sęk w tym, że nie moge takiego xml wygenerować, bo wyskakuje mi błąd, który opisałem w 1 poście. Jak na tym poziomie zmienić kodowanie nie mam zielonego pojęcia. Chętnie potestuje te kodowania, tylko powiedz jak....
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
A co jest w tym wierszu 16 w pliku, w którym pojawia się błąd?
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 17.03.2004 Skąd: Gorzów Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
sprawdzałem i kombinowałem z tym. Błąd ten pojawia się zawsze tam, gdzie pierwszy raz pojawia się polska literka, w tym wypadku "Ł".
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 114 Pomógł: 1 Dołączył: 17.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
Problem jest w tym, że próbujesz generować pliki w UTF-8 a php nie w takim formacie przechowuje stringi. Użyj jakiegoś xmlwritera - one maja zazwyczaj odpowiednie funkcje do konwersji. Skoro z polskimi znakami nie mają problemu, to z hiszpańskimi tez nie będą miały. Nie wiem, czy nie będziesz musiał wtedy zrezygnować z UTF na rzecz któregoś z ISO-8859-?.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 17.03.2004 Skąd: Gorzów Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
a jakiego xmlwrite'a polecasz? Powiem szczerze, że nie jestem mocny w php, z reszta to widac. Chcialem tylko za pomoca php zrobic sobie najprostszego xml, a potem go polaczyc z flash'em. Najwieszy problem w tym wszystkim to te znaki.
Aha, czy cos bede musial instalowac na serwie? Bo jesli tak to takie rozwiazanie odpada, bo nie mam takich uprawnien. jestem zwyklym userem. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 17.03.2004 Skąd: Gorzów Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
dla zinteresowanych link http://w3.creaciones-virtuales.com/php/menu.php. Heh dziwna z tym jest sprawa. Raz wyswietla sie blad, robimy F5 i pokazuje sie xml taki jak powinien byc. Niestety w obu przypadkach jak wezmiemy "pokaz źródło" literka "Á" nie pokazuje sie. naprawde to zaczyna mi to powoli bokiem wychodzic. Dlaczego tak jest i jak to poprawic?
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 114 Pomógł: 1 Dołączył: 17.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
http://phpxmlclasses.sourceforge.net/ tutaj są ogólne klasy obsługi XML
http://www.phpclasses.org/browse/package/250.html - ja używam tej klasy, tam możesz ustawić kodowanie wejściowe. NIe trzeba instalować, to tylko klasa. Warto poeksperymentowac. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 17.03.2004 Skąd: Gorzów Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
no nie wiem. nie za silnie sie czuje w php, ale moze cos sie uda zrobic. czy moglbys mi wyslac ta klase na mejla lando20@interia.pl . mam problem zeby sciagnac ta klase ze strony.
|
|
|
![]()
Post
#14
|
|
Grupa: Przyjaciele php.pl Postów: 195 Pomógł: 0 Dołączył: 7.07.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
A ja bym Ci polecal zamiast wstawiac kod xml inline, stworzyc sobie dokument (w pamieci) a potem przez DOM wstawiac kolejne elementy/atrybuty. Z tego co mi wychodzi w testach DOMowy createTextNode w php 5 dziala dobrze i na UTF-8 pracuje poprawnie.
Wogule uwazam, ze obsluge UTF-8 to najbardziej pomijana zmiana od PHP4 - w tej chwili mam testowy kawalek serwisu ktory parsuje z bazy do XML, XML validuje z DTD (encje jezykowe), i transforumuje XSLT, a nastepnie wynik daje na ekran - wszystko pracuje w UTF-8 i napotkalem tylko jeden problem ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 05:30 |