Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Zarządzanie nazwami menu
tomsi
post 14.08.2008, 22:01:23
Post #1





Grupa: Zarejestrowani
Postów: 379
Pomógł: 45
Dołączył: 30.06.2007

Ostrzeżenie: (10%)
X----


Mam w katalogu Menu pliki np aktualnosci.php, wiadomosci.php, galeria.php. Pobieram te wszystkie pliki do zmiennej i wyświetlam w menu. W każdym z tych plików wprowadzam odpowiednie dane i ok. Problem polega tylko na tym, że w menu wyświetlają mi się te nazwy plików, a ja chciałbym żeby zamiast aktualnosci.php był napis Aktualności itd. Wiem, że można by to zrobić w tablicy, ale czy jest jakiś sposób żeby np. w katalogu Menu był jakiś plik .txt w którym byłyby nazwy plików i po jakimś separatorze ich nazwy, które były by widoczne na stronie. Dodawał bym tylko nowy plik do folderu o jakiejś nowej nazwie i po | podam nazwę, która byłaby widoczna w menu np.

aktualnosci.php|Aktualności
wiadomosci.php|Wiadomości
galeria.php|Galeria

No bo rozumiem, że automatyczna taka zamiana to byłaby ciężka do zrobionia bądź nawet niemożliwa.


--------------------
Jeśli Ci pomogłem kliknij "Pomógł"
Jeśli Ty mi pomogłeś kliknę "Pomógł"
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Pride
post 14.08.2008, 22:39:03
Post #2





Grupa: Zarejestrowani
Postów: 139
Pomógł: 11
Dołączył: 31.01.2005
Skąd: Bydgoszcz

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


Lepiej gdybyś pokazał coś tego kodu tongue.gif

Ogólnie do takiej rzeczy można by użyć: explode" title="Zobacz w manualu PHP" target="_manual


--------------------
Kto pyta - nie błądzi, kto szuka - znajduje.
Go to the top of the page
+Quote Post
--gość--
post 15.08.2008, 14:09:05
Post #3





Goście







chyba szybciej by było coś w tym stylu
  1. <?php
  2. $name = 'aktualnosci.php';
  3.  
  4. $newName = ucfirst(substr($name, 0, strpos($name, '.')));
  5. echo $newName;
  6. ?>
Go to the top of the page
+Quote Post
tomsi
post 17.08.2008, 09:56:58
Post #4





Grupa: Zarejestrowani
Postów: 379
Pomógł: 45
Dołączył: 30.06.2007

Ostrzeżenie: (10%)
X----


No tak fajnie tylko, że w wyniku tego skryptu dostane wynik w postaci:

Aktualnosci

bez polskich znaków.


--------------------
Jeśli Ci pomogłem kliknij "Pomógł"
Jeśli Ty mi pomogłeś kliknę "Pomógł"
Go to the top of the page
+Quote Post
l0ud
post 17.08.2008, 10:51:53
Post #5





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Masz taki kod:
  1. <?php
  2.  
  3. class menuPosNameFinder {
  4.  
  5. private $data = array();
  6.  
  7. public function __construct($file) {
  8. $fileData = file($file);
  9. for ($i=0,$b=count($fileData);$i<$b;$i++) {
  10. list($key,$value) = explode('|',trim($fileData[$i]));
  11. $this->data[$key] = $value;
  12. }
  13. }
  14.  
  15. public function getPosName($fileName) {
  16. if (isset($this->data[$fileName]))
  17. return $this->data[$fileName];
  18. else return false;
  19. }
  20.  
  21. }
  22.  
  23. //tworzymy obiekt tej klasy, przekazując mu nazwę pliku z pozycjami
  24. $finder = new menuPosNameFinder('pozycje.txt');
  25.  
  26. //pierwsza i druga pozycja
  27. echo $finder->getPosName('index.php');
  28. echo '<br>';
  29. echo $finder->getPosName('asd.php');
  30. echo '<br>';
  31.  
  32. //trzecia pozycja: dodatkowo sprawdzamy, czy istnieje
  33. if (($pos = $finder->getPosName('inna.php')) !== false) echo $pos;
  34. else echo 'Brak pozycji';
  35.  
  36. ?>


Na dole masz 3 przykłady, jak pobierać dane z tej klasy. smile.gif Plik pozycje.txt wygląda tak:
Kod
index.php|Indeks
asd.php|Inna strona


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 20.07.2025 - 10:27