Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Uzyskanie nazwy pliku
Forum PHP.pl > Forum > Przedszkole
nexis
Witam,

chciałbym uzyskać samą nazwę pliku ze zmiennej predefinowanej $_SERVER['PHP_SELF'].

Efeketem jej użycia jest wyświetlenie coś podobnego do poniższego przykładu:

/folder/plik.php

lub

/strona/folder/plik.php

lub

/plik.php

Chciałbym uniwersalną funkcję, która z tych trzech różnych propozycji wyświetli mi samą nazwę plik.

Z pewnością trzeba będzie użyć funkcji preg_match" title="Zobacz w manualu php" target="_manual, lecz nie wiem jak stworzyć wyrażenie regualrne. Po prostu nie mogę się tego nauczyć. Może mi ktoś podać gotowe rozwiązanie?
kszychu
explode'uj to po / i pobierz ostatni element tablicy.
nexis
Z funkcją explode" title="Zobacz w manualu php" target="_manual nie będzie problemu, ale jak sprawdzić ile elementów tablicy zostało utworzonych i jak pobrać ostatni z nich?
Skobi
  1. <?
  2. $str = '/folder/plik.php';
  3. $arr = explode('/', $str);
  4. echo end($arr);
  5. ?>
nospor
A w jaki sposob sie sprawdza liczbe elementow tablicy.... hmmm, nie wiem, moze w manualu piszą:
http://pl.php.net/manual/pl/ref.array.php
ale niechce mi sie szukac, moze ty sprobuj smile.gif

edit: sposob Skobi tez jest fajny. ale i on sie znajduje w linku co podalem smile.gif
nexis
  1. <?php
  2. $filename = $_SERVER['PHP_SELF'];
  3. $filename = explode("/", $filename);
  4. foreach ($filename as $file) {
  5. $name = $file;
  6. }
  7. echo $name;
  8. ?>


Zrobiłem coś takiego, ale użycie end()" title="Zobacz w manualu php" target="_manual chyba jest lepsze. smile.gif
Athlan
w sumie end działa jak:

  1. <?php
  2. $filename = $_SERVER['PHP_SELF'];
  3. $filename = explode("/", $filename);
  4. $count = count($filename);
  5. $name = $file[$count];
  6. echo $name;
  7. ?>


zamiasty pisać tyle kodu, możesz użyć end smile.gif
hwao
Eh smile.gif

Po 1 powinienes popatrzec na parse_url" title="Zobacz w manualu php" target="_manual() i pokrewne
basename" title="Zobacz w manualu php" target="_manual() <-
parse_str" title="Zobacz w manualu php" target="_manual()

pathinfo" title="Zobacz w manualu php" target="_manual()


Jak już sam chcesz pisac to da sie to zrobic tak..
  1. <?php
  2. echo array_pop( explode( '/', $_SERVER['PHP_SELF'] ) );
  3. ?>

Rozowazanie nie jest uniwersalne poniewaz moze tam byc / lub \ (trzeba preg_split uzyc...) bądz też funkcji stworzonej do tego basename" title="Zobacz w manualu php" target="_manual()
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.