Próbuje przez php odczytać plik xml generowany na stronie. Jak otwieram strone przez przeglądarke polskie znaki widzi normalnie. Jak otwieram przez php i echuje nie widać polskich znaków.
Używałem do tego naprawde najróżniejszych funkcji (np. stream_get_contents(...)), w trybie tekstowym i binarnym, i wciąż mam ten sam problem. Próbowałem konwersji ale nadal nic. Najdziwniejsze że widzi mi literę 'ó' a innych nie.
Kod php:
<?php $key = "ABQIAAAAgRoZef3TkvvpFfxpf_XfwxSF2OD0fXwtfwCX5T6SnrxKzgMRWRR4G_FccdcRT34uebl
QSVzRJgXhaA"; $output = "xml"; $search = "chełmce"; $str = stream_get_contents($stream); } ?>
Dostaje takie coś przy ustawionym kodowaniu ISO-8859-1, przy utf-8 literkę 'ó' zamienia na krzaczory:
[xml]
<kml>
<Response>
<name>che mce</name>
<Status>
<code>200</code>
<request>geocode</request>
</Status>
<Placemark id="p1">
<address>Che mce, Kruszwica gmina, Poland</address>
<AddressDetails Accuracy="4">
<Country>
<CountryNameCode>PL</CountryNameCode>
<AdministrativeArea>
<AdministrativeAreaName>Kujawsko-Pomorskie</AdministrativeAreaName>
<SubAdministrativeArea>
<SubAdministrativeAreaName>Inowroc awski</SubAdministrativeAreaName>
<Locality>
<LocalityName>Kruszwica gmina</LocalityName>
<DependentLocality>
<DependentLocalityName>Che mce</DependentLocalityName>
</DependentLocality>
</Locality>
</SubAdministrativeArea>
</AdministrativeArea>
</Country>
</AddressDetails>
<Point>
<coordinates>18.447999,52.614150,0</coordinates>
</Point>
</Placemark>
<Placemark id="p2">
<address>Che mce, Kowiesy, Poland</address>
<AddressDetails Accuracy="4">
<Country>
<CountryNameCode>PL</CountryNameCode>
<AdministrativeArea>
<AdministrativeAreaName> ódzkie</AdministrativeAreaName>
<SubAdministrativeArea>
<SubAdministrativeAreaName>Skierniewicki</SubAdministrativeAreaName>
<Locality>
<LocalityName>Kowiesy</LocalityName>
<DependentLocality>
<DependentLocalityName>Che mce</DependentLocalityName>
</DependentLocality>
</Locality>
</SubAdministrativeArea>
</AdministrativeArea>
</Country>
</AddressDetails>
<Point>
<coordinates>20.358771,51.893668,0</coordinates>
</Point>
</Placemark>
<Placemark id="p3">
<address>Che mce, Opatówek, Poland</address>
<AddressDetails Accuracy="4">
<Country>
<CountryNameCode>PL</CountryNameCode>
<AdministrativeArea>
<AdministrativeAreaName>Wielkopolskie</AdministrativeAreaName>
<SubAdministrativeArea>
<SubAdministrativeAreaName>Kaliski</SubAdministrativeAreaName>
<Locality>
<LocalityName>Opatówek</LocalityName>
<DependentLocality>
<DependentLocalityName>Che mce</DependentLocalityName>
</DependentLocality>
</Locality>
</SubAdministrativeArea>
</AdministrativeArea>
</Country>
</AddressDetails>
<Point>
<coordinates>18.173290,51.699367,0</coordinates>
</Point>
</Placemark>
<Placemark id="p4">
<address>Che mce, Strawczyn, Poland</address>
<AddressDetails Accuracy="4">
<Country>
<CountryNameCode>PL</CountryNameCode>
<AdministrativeArea>
<AdministrativeAreaName> wi tokrzyskie</AdministrativeAreaName>
<SubAdministrativeArea>
<SubAdministrativeAreaName>Kielecki</SubAdministrativeAreaName>
<Locality>
<LocalityName>Strawczyn</LocalityName>
<DependentLocality>
<DependentLocalityName>Che mce</DependentLocalityName>
</DependentLocality>
</Locality>
</SubAdministrativeArea>
</AdministrativeArea>
</Country>
</AddressDetails>
<Point>
<coordinates>20.491547,50.932411,0</coordinates>
</Point>
</Placemark>
<Placemark id="p5">
<address>Chelmce, Godziesze Wielkie, Poland</address>
<AddressDetails Accuracy="4">
<Country>
<CountryNameCode>PL</CountryNameCode>
<Locality>
<LocalityName>Godziesze Wielkie</LocalityName>
<DependentLocality>
<DependentLocalityName>Chelmce</DependentLocalityName>
</DependentLocality>
</Locality>
</Country>
</AddressDetails>
<Point>
<coordinates>18.160000,51.700000,0</coordinates>
</Point>
</Placemark>
<Placemark id="p6">
<address>Chelmce, Kowiesy, Poland</address>
<AddressDetails Accuracy="4">
<Country>
<CountryNameCode>PL</CountryNameCode>
<Locality>
<LocalityName>Kowiesy</LocalityName>
<DependentLocality>
<DependentLocalityName>Chelmce</DependentLocalityName>
</DependentLocality>
</Locality>
</Country>
</AddressDetails>
<Point>
<coordinates>20.360000,51.900000,0</coordinates>
</Point>
</Placemark>
</Response>
</kml>
[xml]
A teraz najdziwniejsze.
Jeżeli do odebrania wyniku używam fsockopen, moje zapytanie wygląda tak:
<?php $out = "GET $path HTTP/1.0rn"; $out .= "Host: $hostrn"; $out .= "Referer: <a href="http://fotoidol.comrn";" target="_blank">http://fotoidol.comrn";</a> $out .= "Accept-Charset: utf-8, unicode-1-1;q=0.8rn"; ?>
Wynik wygląda tak:
HTTP/1.0 200 OK
Cache-Control: private
Last-Modified: Fri, 18 May 2007 11:51:39 GMT
Content-Type: text/javascript; charset=UTF-8; charset=ISO-8859-1
Server: mfe
Date: Fri, 18 May 2007 11:51:39 GMT
Connection: Close
Nie wiem czemu ale dodaje drugi charset:/.
Nic się nie dzieje, nadal błąd i brak polskich liter. Ale gdy dodam kolejną linijkę:
<?php $out .= "User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.6) Gecko/20050317 Firefox/1.0.2rnrn"; ?>
nagle drugi charset zmienia sie na utf-8 i widzi polskie literki, co jest grane, błąd google??