Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zapis polskich znaków do tablicy z funkcji glob();
Forum PHP.pl > Forum > Przedszkole
Czapla
Kawałek klasy:
  1. <?php
  2. define("sciezka", "./strony/*"); //stała dla wyboru katalogu
  3.  
  4. class tworzWidok {
  5.    
  6. var $lista_plikow = array();
  7.  
  8. function __construct() {
  9.   if (empty($this->lista_plikow))
  10.       $this->lista_plikow = glob(sciezka);
  11.   return $this->lista_plikow;
  12.   }
  13.  
  14. function wyswietlMenu() {
  15.     foreach ($this->lista_plikow as $indeks=>$nazwa ){
  16.         $nazwa = ucwords(strtolower(basename(preg_replace('/(.+)..*$/', '$1', $nazwa)))); // usuwa rozszerzenie, usuwa ścieżkę, zamienia wszytkie litery na małe, zamienia pierwsze litery na duże
  17.         print "   <a href=index.php?strona=".$indeks.">".$nazwa."</a>";
  18.     }
  19.   }
  20.  
  21. ...
  22.  
  23. ...
  24. }
  25. ?>

A sprawdzanie tablicy daje mi:
  1. <?php
  2. array(1) { [0]=> string(19) "./strony/wst�p.html" }
  3. ?>

czyli bez polskich znaków, kodowanie mam na serwerze i we wszystkich plikach ustawione na UTF-8. Jak ma to wyglądać?

Pozdrawiam

edt: literówki, tagi
potreb
Twórz nazwy plików bez polskich znaków i nie będziesz miał problemu.
Czapla
widzę że nie analizowałeś kodu, ścieżka zapisywana w tablicy (po obróbce w linii 17) jest wykorzystywana do wyświetlania nazw w dynamicznie tworzonych linkach. A wypisanie na stronie Wstep, Zaba, Rozmowki, itd... źle wygląda.
Pilsener
No to:
- adres url - bez polskich znaków
- nazwy plików - bez polskich znaków
- tekst na stronie - z polskimi znakami

Z polskich nazw tworzy się nazwy plików i adresy url, które polskich znaków nie zawierają, a gdy chce się je wyświetlić na stronie to polskie znaki się znowu wstawia.

Nie widzę w ogóle sensu nadawać plikom innych nazw niż 1,2,3 itd. Natomiast w bazie trzymasz nazwę z polskimi znakami i wyświetlasz ją na stronie normalnie, a w adresie bez polskich znaków.
Czapla
ale ja nie chcę bazy, pytam tylko czy jest jakiś sposób oszukania glob i tablicy tak aby ścieżka była przechowywana z polskimi znakami. a adresy url przechowuje w tablicy pod numerami
erix
Cytat
pytam tylko czy jest jakiś sposób oszukania glob i tablicy tak aby ścieżka była przechowywana z polskimi znakami

Jeśli nie zrobisz pliku-indeksu, nie uda Ci się tak. Dodasz nowy plik i wtedy indeksy będą pomieszane.

Rozwiązanie DB albo indeks. Lepiej to pierwsze. A jeśli nie możesz użyć MySQL, SQLite.
misiek172
sory, że odkopuje stary temat, ale czy na pewno nie ma na niego rozwiązania? Jest ono mi potrzebne, bo muszę przerobić istniejący skrypcik. Jakbyś ktoś wiedział jak odwołać się w przeglądarce do pliku z polskimi znakami, proszę o info.


dobra poradziłem sobie smile.gif smile.gif rozwiązanie jest proste, wystarczy stworzyć plik w .php którym ten obrazek wczytamy i zwrócimy header jako image
  1. header('Content-Type: image/jpeg');
  2. readfile('imgs/Kredensy/testowy mebel/ogrodowy stół źć.jpg');
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.