Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Pobieranie nazwy pliku i wykorzystanie jej jako zmiennej
Forum PHP.pl > Forum > Przedszkole
ichu
Witam! W akcie desperacji po godzinie bezowocnych poszukiwań postanowiłem się zarejestrować i napisać taki temat... winksmiley.jpg Jestem zielony w php, umiem tylko modyfikować istniejące pliki i to wszystko...
Dzisiaj niestety zostałem zmuszony do napisania strony w php, a właściwie html zawierającej odrobinę php...

Mianowicie chodzi o taki problem:
Jak pobrać nazwę aktualnie otwartego pliku w php (np. pd_01.php), "uciąć" rozszerzenie i rozbić go jeszcze na "pd" i "d_01"? Chodzi o to, że zmiennym "pd" i "d_01" przyporządkowałem zmienne i żebym nie musiał zmieniać ich cały czas w źródle pliku tylko żeby były automatycznie pobierane z jego nazwy.
Cysiaczek
  1. <?php
  2. //ucięcie rozszerzenia
  3. $plik=basename($_SERVER[PHP_SELF]);
  4.  
  5. $noExt=substr($plik, 0, -4); // i już nie masz rozszerzenia
  6. ?>


Reszty poszukaj w manualu lub na forum jako zadanie domowe laugh.gif, bo tu nie ma gotowców, tylko jest pomoc
przydatne funkcje: explode(), substr(), strlen() i inne dotyczące stringów.

Pozdrwiam
ichu
Niestety, aż taki dobry nie jestem i muszę "ściągnąć" od kogoś pracę domową winksmiley.jpg
Postanowiłem użyć explode.

  1. <?php
  2. //ucięcie rozszerzenia
  3. $plik=basename($_SERVER[PHP_SELF]);
  4.  
  5. $noExt=substr($plik, 0, -4); // i już nie masz bez rozszerzenia
  6. $prefix=explode('_', $noExt, 2);
  7. echo $prefix;
  8. ?>


To jest oczywiście źle i nie działa, nie wiem jak teraz wykorzystać wynik tej funkcji i rozpisać to na dwie zmienne. Nie udało mi się też wykorzystać wyniku $noExt i przyporządkowaniu go innej zmiennej.
  1. <?php
  2. $noExt = $innaZmienna; nie działa :(
  3. ?>


Pomocy!
Lonas
No to dobrze postanowiłes

  1. <?php
  2. $prefix=explode('_', $noExt);
  3. echo $prefix[0]; // 1 czesc
  4. echo $prefix[1]; //2 dzesc
  5. ?>
ichu
OK, dzieki smile.gif Czyli mamy takie coś:

  1. <?php
  2. //ucięcie rozszerzenia
  3. $plik=basename($_SERVER[PHP_SELF]);
  4.  
  5. $noExt=substr($plik, 0, -4); // bez rozszerzenia
  6. $prefix=explode('_', $noExt);
  7.  
  8. //przyporządkowanie częściom z nazwy pliku innych zmiennych
  9. $prefix[0] = $zmienna1;
  10. $prefix[1] = $zmienna2;
  11.  
  12. ?>


I teraz tak: dla pliku o nazwie pd_d01.php powinniśmy otrzymać wyniki: "pd" i "d01".
Zmienne mają wartości:

  1. <?php
  2. $pd ="Wartość1";
  3. $d01="Wartość2";
  4. ?>


Jak to teraz połączyć ze sobą?
Lonas
Ale co chcesz połączyć ?

  1. <?php
  2. $prefix[0] = $zmienna1; // to już jest pd
  3. $prefix[1] = $zmienna2; // a to d01
  4. ?>
Cysiaczek
  1. <?php
  2. $$zmienna1="Wartosc1";
  3. ?>


Naprawdę po to, to mogłeś przejśc się do manuala.
ichu
OK. Już mam chyba gotowy skrypt, tyle że jeszcze coś jest nie tak... Po stworzeniu takiego pliku k1_r01.php dostałem tylko "<br>" ....

  1. <?php
  2.  
  3. //Deklarujemy sobie 2 zmienne, są to części nazwy pliku: k1_r01.php
  4. $k1 = 'WARTOŚĆ DLA ZMIENNEJ 1';
  5. $r01 = 'WARTOŚĆ DLA ZMIENNEJ 2';
  6.  
  7. //ucinamy rozszerzenie pliku
  8. $plik=basename($_SERVER[PHP_SELF]);
  9.  
  10. $podstawa=substr($plik, 0, -4); // i już jest bez rozszerzenia
  11. $prefix=explode('_', $podstawa);
  12. $prefix[0] = $zmienna1; // Wartością $zmienna1 powinno być k1
  13. $prefix[1] = $zmienna2; // Wartością $zmienna2 powinno być r01
  14.  
  15. echo $$zmienna1; // i teraz dokładamy $ do k1 żeby otrzymać $k1 i w rezultacie tekst "WARTOŚĆ DLA ZMIENNEJ 1"
  16. echo '<br>';
  17. echo $$zmienna2; // oraz $ żeby dostać $r01 i dostać napis analogicznie jak wyżej.
  18. ?>


Już znalazłem błąd: wystarczy $$prefix[0] lub $$prefix[1] i działa smile.gif

Temat uważam za zamknięty.
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.