Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem znakow po raz n-ty.
Forum PHP.pl > Forum > PHP
Frostbourn
Witam. Dopier stawiam pierwsze kroki w bawieniu sie php i nie moge sie do konca polapac o co chodzi. Przeszukalem forum, probowalem roznych sposobow i nie moge sobie z tym poradzic...


  1. <?
  2. $adres=base64_decode($_GET['link']);
  3. $url    = $adres;
  4. $head    = get_headers($url, 1);
  5. $url = parse_url($head['Location']);
  6. header ('HTTP/1.1 301 Moved Permanently');
  7. header ('Location: http://' . $url['host'] . $url['path'] . (strpos($url['path'], '.mp3') !== false ? '' : '.mp3') . '?' . $url['query']);
  8.  
  9. ?>


Chcialbym tutaj jakos podłaczyc obsluge polskich znakow, bo gdy chce sciagnac piosenke ktora ma w tylule polski znak wyskakuje mi cos takiego:





Kod
Warning: get_headers(http://googaa.wrzuta.pl/aud/file/x4hvqIxhpl/pectus_-_to_co_chcialbym_ci_dac.mp3) [function.get-headers]: failed to open stream: Invalid redirect URL! http://va.wrzuta.pl/wa2040/b58ef9b80002e50e48983932/733a44160a86f12196319a818db1e2954901fe80/pectus%20-%20to%2C%20co%20chcia%C5%82bym%20ci%20da%C4%87?type=a&key=x4hvqIxhpl&ft=f in /home/pob.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at /home/pob.php:4) in /home/pob.php on line 6

Warning: Cannot modify header information - headers already sent by (output started at /home/pob.php:4) in /home/zamieszkaj/pob.php on line 7



Bede wdzieczny za pomoc.
Lejto
nie wiem jak to ustawić u twoim kodzie (może w headerze) ustaw poprawne dla polskich liter kodowanie
Frostbourn
A jak to dokladnie zrobic? Jestem kompletnym laikiem, a musze sobie z tym poradzic.
piotrooo89
wysyłasz coś przed użyciem headers. poszukaj na forum było setki razy...
Frostbourn
Dobra skoro nikt mi nie chce powiedziec co z tym dokladnie zrobic. To zaplace za to zeby ktos to naprawil. Prosze o kontakt na PW.
piotrooo89
zrób tak:

po 1 zmien kodowanie strony na UTF-8 bez BOM i powiedz czy sie poprawiło jak nie to
po 2 sprobuj w pierwszej linii dac: <?php ob_start(); ?>
Frostbourn
Zmienilem kodowanie notepadem++ na utf8 bez bom. Ale kiedy zamkne plik i wczytam go jeszcze raz to pokazuje mi ze jest kodowany w ansi.
To 2 nie pomoglo, bo wogole nie wczytuje strony. Tzn sciaga piosenki, ktore nie maja w tytule polskich znakow. Jak jest polski znak to nie moze wyswietlic tej strony. Koles ktory pisal ten skrypt ciagle mi powtarze, ze to wina serwera...
Lejto
a spróbuj zmienić kodowanie na iso-8859-2
Frostbourn
Nie wiem czemu, ale ani grzegzolka ani notepadem++ nie moge zmienic kodowania. Niby pisze, ze jest zmienione, ale jak otwieram je ponownie to pisze, ze kodowanie: Europa Zachodznia. Dodalem header('Content-type: iso-8859-2'); i dalej nic.
Lejto
zobacz jeszcze z utf albo z unicode
Frostbourn
Nie, to nic nie daje.
Lejto
nie masz na początku kodu żadnej zbędnej spacji przed <? ? Dodałeś na początku ob_start(); i na końcu ob_end_flush(); jeżeli tak i nie działa to już nie wiem
Frostbourn
  1. <?php
  2. $adres = base64_decode ($_GET['link']);
  3. $url = $adres;
  4. $head = get_headers ($url, 1);
  5. $url = parse_url ($head['Location']);
  6. header('Content-type: utf-8');
  7. header ('HTTP/1.1 301 Moved Permanently');
  8. header ('Location: http://' . $url['host'] . $url['path'] . (strpos($url['path'], '.mp3') !== false ? '' : '(www.sciagnij-to.pl).mp3') . '?' . $url['query']);
  9. ?>


Tak to wyglada.
piotrooo89
utf-8 bez BOM'a jest bo jak nie to Ci nie zadziała.
Frostbourn
Konwertuje notepadem++ na utf-8 bez boma i dalej to samo. Moze to jest bardziej zlozone.
piotrooo89
przejrzałem jeszcze raz i doszedłem do wniosku że najpierw wysyłasz get_header a później znów headerem i nie będzie chodzić.
Frostbourn
Czyli co mam z tego wyrzucic?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.