Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Gubie ogonki przy odczycie ze strumienia
megagame
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 25.04.2007

Ostrzeżenie: (0%)
-----


Witam

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:
  1. <?php
  2. header('Content-Type: text/xml; charset=ISO-8859-1');
  3.  
  4. $key = "ABQIAAAAgRoZef3TkvvpFfxpf_XfwxSF2OD0fXwtfwCX5T6SnrxKzgMRWRR4G_FccdcRT34uebl
    QSVzRJgXhaA"
    ;
  5. $output = "xml";
  6. $search = "chełmce";
  7.  
  8. $query = "http://maps.google.com/maps/geo?q=".urlencode($search)."&output=".$output."&key=".$key;
  9.  
  10. if ($stream = fopen($query, 'rb')) {
  11. $str = stream_get_contents($stream);
  12. fclose($stream);
  13. }
  14.  
  15. echo $str;
  16. ?>


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:

  1. <?php
  2. $out = "GET $path HTTP/1.0rn";
  3. $out .= "Host: $hostrn";
  4. $out .= "Referer: <a href="http://fotoidol.comrn";" target="_blank">http://fotoidol.comrn";</a>
  5. $out .= "Accept-Charset: utf-8, unicode-1-1;q=0.8rn";
  6. ?>


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ę:

  1. <?php
  2. $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";
  3. ?>


nagle drugi charset zmienia sie na utf-8 i widzi polskie literki, co jest grane, błąd google??

Ten post edytował megagame 18.05.2007, 13:26:17
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 05:39