Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Uzyskanie nazwy pliku, ze zmiennej $_SERVER['PHP_SELF'];
nexis
post 2.08.2006, 15:39:50
Post #1





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


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?


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
kszychu
post 2.08.2006, 15:52:10
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


explode'uj to po / i pobierz ostatni element tablicy.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
nexis
post 2.08.2006, 15:56:07
Post #3





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


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?


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
Skobi
post 2.08.2006, 15:58:16
Post #4





Grupa: Zarejestrowani
Postów: 174
Pomógł: 1
Dołączył: 19.02.2004

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


  1. <?
  2. $str = '/folder/plik.php';
  3. $arr = explode('/', $str);
  4. echo end($arr);
  5. ?>
Go to the top of the page
+Quote Post
nospor
post 2.08.2006, 15:58:18
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nexis
post 2.08.2006, 16:00:38
Post #6





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


  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


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
Athlan
post 2.08.2006, 17:27:09
Post #7





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


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


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
hwao
post 2.08.2006, 17:34:14
Post #8


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




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()
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: 24.06.2025 - 18:48