Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [readdir] usuwanie rozszerzeń z nazw plików
Asmox
post 24.02.2009, 19:05:24
Post #1





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


Mam pewną funkcję na stronie, która listuje zawartość katalogów. Niestety nazwy plików podawane są razem z rozszerzeniami. Wie ktoś jak je usuwać (z nazw plików oczywiście rolleyes.gif )?


--------------------
Go to the top of the page
+Quote Post
phpion
post 24.02.2009, 19:09:59
Post #2





Grupa: Moderatorzy
Postów: 6 070
Pomógł: 860
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




pathinfo" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
kefirek
post 24.02.2009, 19:15:40
Post #3





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


Albo mozna tez tak
  1. <?php
  2. $plik = 'plik.php';
  3. $nazwa = strtolower(substr($plik, 0, strrpos($plik, ".")));
  4. ?>


Ten post edytował kefirek 24.02.2009, 19:16:16
Go to the top of the page
+Quote Post
phpion
post 24.02.2009, 19:17:18
Post #4





Grupa: Moderatorzy
Postów: 6 070
Pomógł: 860
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(kefirek @ 24.02.2009, 21:15:40 ) *
Albo mozna tez tak

Szczególnie dla plików o nazwach typu edek.z.krainy.kredek.txt.
Go to the top of the page
+Quote Post
bim2
post 24.02.2009, 19:25:01
Post #5





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Phpion można, choć pathinfo" title="Zobacz w manualu PHP" target="_manual będzie i szybsza i wygodniejsza smile.gif

Więc
  1. <?php
  2. echo pathinfo('lol.bez.l.txt', PATHINFO_FILENAME);
  3. ?>

lub
  1. <?php
  2. $sNameFile = 'edek.z.krainy.krede.txt';
  3. $tmp = expllode('.', $sNameFile);
  4. unset($tmp[count($tmp)-1]);
  5. $sNameFile = implode('.', $tmp);
  6. ?>


Ten post edytował bim2 24.02.2009, 19:57:41


--------------------
Go to the top of the page
+Quote Post
kefirek
post 24.02.2009, 19:29:10
Post #6





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


Cytat(phpion @ 24.02.2009, 19:17:18 ) *
Szczególnie dla plików o nazwach typu edek.z.krainy.kredek.txt.


Przykład jest dobry
  1. <?php
  2. $plik = 'edek.z.krainy.kredek.txt';
  3. $nazwa = strtolower(substr($plik, 0, strrpos($plik, ".")));
  4. echo $nazwa;
  5. ?>


Z takiej nazwy pliku edek.z.krainy.kredek.txt zwróci edek.z.krainy.kredek
Nie wiem może u ciebie są pliki z kropką w rozszerzeniu np txt. bo ja takich nie widziałem.

Ten post edytował kefirek 24.02.2009, 20:01:07
Go to the top of the page
+Quote Post
bigZbig
post 24.02.2009, 19:31:36
Post #7





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


Albo tak

  1. <?php
  2. echo (preg_replace('/.[a-zA-Z0-9]*$/', '', 'plik.php'));
  3. ?>


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
Go to the top of the page
+Quote Post
kefirek
post 24.02.2009, 19:50:46
Post #8





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


Dokładnie to powinno byc tak

  1. <?php
  2. echo pathinfo('lol.bez.l.txt', PATHINFO_FILENAME);
  3. ?>



// Pomógł--
//ayeo


Ten post edytował ayeo 25.02.2009, 00:40:48
Go to the top of the page
+Quote Post
Asmox
post 25.02.2009, 17:26:27
Post #9





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


OK, na moim WebServku to wszystko jest w porządku. Ale przy przerzucaniu strony na yoyo.pl są problemy. Mam taki kod:
  1. <?php
  2. if (!empty($pliki)){
  3. foreach ($pliki as $nazwa) {
  4. $nazwa2 = str_replace("-", "&nbsp;", $nazwa);
  5. /*linia 168*/$nazwa2 = pathinfo($nazwa2, PATHINFO_FILENAME);
  6. echo ("<li><a href=\"$sciezka$nazwa\">$nazwa2</a></li>");
  7. }
  8. }
  9. ?>

na serwerze yoyo.pl wyskakuje mi taki błąd:
Warning: pathinfo() expects parameter 2 to be long, string given in /var/www/sites/yoyo.pl/w/o/worldweb/php/include/include.php on line 168


--------------------
Go to the top of the page
+Quote Post
bim2
post 25.02.2009, 19:46:03
Post #10





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


strtolower" title="Zobacz w manualu PHP" target="_manual, substr" title="Zobacz w manualu PHP" target="_manual, strrpos" title="Zobacz w manualu PHP" target="_manual
Spróbuj sam pokombinować. Pozostaje ci też
explode" title="Zobacz w manualu PHP" target="_manual, implode" title="Zobacz w manualu PHP" target="_manual, unset" title="Zobacz w manualu PHP" target="_manual


--------------------
Go to the top of the page
+Quote Post
NuLL
post 26.02.2009, 09:26:41
Post #11





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


A jaka masz wersje PHP ? Jesli nie masz 5.2.x to PATHINFO_FILENAME nie istnieje i z tej funkcji nie mozna skorzystac. Lepszym rozwiazaniem byloby to od bigZbig-a.

A ty @bim2 nie pisz bezsensownych postow bo rownie dobrze mozna wkleic liste f-cji z manuala


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
Asmox
post 26.02.2009, 14:29:58
Post #12





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


A no faktycznie sprawdziłem i wersja php jest chyba 5.1.2


--------------------
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: 25.04.2024 - 10:05