Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Pobieranie nazwy pliku i wykorzystanie jej jako zmiennej, Wykorzystanie nazwy pliku jako zmiennej w php
ichu
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 26.08.2006

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


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.

Ten post edytował ichu 26.08.2006, 16:04:52
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




  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

Ten post edytował Cysiaczek 26.08.2006, 16:14:34


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
ichu
post
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 26.08.2006

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


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!

Ten post edytował ichu 26.08.2006, 16:58:52
Go to the top of the page
+Quote Post
Lonas
post
Post #4





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

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


No to dobrze postanowiłes

  1. <?php
  2. $prefix=explode('_', $noExt);
  3. echo $prefix[0]; // 1 czesc
  4. echo $prefix[1]; //2 dzesc
  5. ?>


--------------------
Go to the top of the page
+Quote Post
ichu
post
Post #5





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 26.08.2006

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


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ą?
Go to the top of the page
+Quote Post
Lonas
post
Post #6





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

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


Ale co chcesz połączyć ?

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


--------------------
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #7





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




  1. <?php
  2. $$zmienna1="Wartosc1";
  3. ?>


Naprawdę po to, to mogłeś przejśc się do manuala.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
ichu
post
Post #8





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 26.08.2006

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


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.

Ten post edytował ichu 26.08.2006, 22:46:33
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 Aktualny czas: 20.08.2025 - 07:57