Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne]Znaki specjalne w adresie - nie działają.
Forum PHP.pl > Forum > Przedszkole
qqwwq
Witam, nie wiedziałem gdzie zamieścić ten temat, dlatego przedszkole.

Niedawno przenosiłem pewną obcojęzyczną stronę, na której w treści są także wklejone obrazki, które w nazwie posiadają np - ö ü .
Co ciekawe, na starym serwerze to działało, teraz na nowym już nie bardzo - albo się nie wyświetla obrazek, albo bezpośrednio z linku wywala komunikat że nie ma pliku na serwerze.

W związku z czym pytanie - czy ktoś miał już styczność z czymś takim? Mogę to jakoś naprawić nie wiem, za pomocą .htaccess, czy to kwestia jakiś ustawień serwera? Wolał bym nie zmieniać po kolei wszystkich nazw obrazków, a potem ich linków w tekście na takie bez znaków specjalnych - bo jest tego naprawdę sporo.


Z góry dziękuję za pomoc i pozdrawiam.
amii
Zainteresuj się tym -> http://webmade.org/porady/kodowanie-set-na...aracter-set.php
tehaha
Cytat(qqwwq @ 27.06.2010, 19:18:16 ) *
Wolał bym nie zmieniać po kolei wszystkich nazw obrazków, a potem ich linków w tekście na takie bez znaków specjalnych - bo jest tego naprawdę sporo.

W zasadzie zmiana nie jest kłopotliwa bo możesz sobie otworzyć plik w php i funkcją str_repace() to zmieniać, tak samo z nazwami plików lub nawet łatwiej pliki np. takim programem http://www.snapfiles.com/get/renamemaster.html, niezależnie ile tego jest to w 15min sobie poradzisz
qqwwq
amii > Ogólnie cała stronka jest oparta na WP. Cały FTP i baza zostały przeniesione na inny serwer ... więc, na nowym serwerze nagle połączenie z bazą musi mieć SET NAMES jako np. latin2? Obecnie jest UTF-8? To chyba nie to, bo pobierając wpisy z bazy, nazwa obrazka jest poprawna, w firebugu mam np:
Cytat
Introducción-al-desarrollo-de-aplicaciones-web-con-Mono-00-300x219.jpg


Tak samo WP pobiera mi z jednego pola całą treść wpisów, a w tej treści jest odpowiednio <img src="..." /> ... i zarówno adresy jak i tekst, mają odpowiednie znaki, bez żadnych krzaków itp.

tehaha > opcja zamiany znaków raczej nie zadziała, bo wedle powyższego, wszystkie poprawne znaki w tekście zamieni mi na np. ö -> o, ü -> u ... i wtedy obrazki może i zadziałają, ale cały tekst będzie niepoprawny gramatycznie. Mylę się?
tehaha
to też nie stanowi problemu ponieważ możesz pobrać elementy <img> funkcją preg_match_all() i tylko tam dokonać zmiany, ale teraz doczytałem, że wcześniej nie miałeś problemu z znaki wyświetlają się prawidłowo, więc wygląda na to, że serwer ma problemy z tymi nazwami, więc może skonsultuj się z obsługą hostingu
qqwwq
Niestety, ale nikt mi raczej nie pomoże. W razie czego mam dostęp do ssh, i całego serwera, może poza samą budą ^^

W przypadku opcji preg_match_all(), to jak miał bym to zrobić? Treść wpisów to tabela wp_posts, pole post_content ... i tam jest w html'u cała treść wraz z obrazkami. Muszę pokolei pobierać treść wpisów, wykonywać tą funkcję, i następnie zrobić update do bazy? Z pobieraniem i wysyłaniem sobie poradzę ... ale może dało by radę jakiś przykład tej funkcji dla zmiany znaków tylko w <img> w src="" ?
tehaha
możesz to zrobić tak:
  1. preg_match_all('/<img[^>]+>/i',$text, $match);
  2. print_r($match);


tą funkcję pobierzesz wszystkie elementy <img> ze strony, wynik przepiszesz sobie do jednowymiarowej tablicy i potem zastępując ö -> o, ü -> u stworzysz drugą tablicę gdzie będą pozmieniane znaki chodzi o to żebyś miał potem 2 tablice: w pierwszej elementy <img> z oryginalną ścieżką a w drugiej tablicy odpowiadające im zmienione ścieżki i potem te 2 tablice użyjesz w funkcji str_replace() z tymi tablicami jak tutaj w przykładach http://php.net/manual/en/function.str-replace.php
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.