Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Nazwa pliku jako zmienna
Forum PHP.pl > Forum > PHP
Maciucha67
Witam!
Czy jest możliwość, aby nazwa pliku tekstowego, z którego pobieram dane była pobierana jako wartość zmiennej?
Dzięki i pozdrawiam
Cysiaczek
Nie bardzo rozumiem, co chcesz osiągnąć.
  1. <?php
  2. $file='nazwa_pliku'; // nazwa pliku w zmiennej
  3. $dataFromFile=file_get_contents($file);
  4. ?>
sniezny_wilk
Cytat(Maciucha67 @ 24.12.2007, 14:22:09 ) *
Witam!
Czy jest możliwość, aby nazwa pliku tekstowego, z którego pobieram dane była pobierana jako wartość zmiennej?
Dzięki i pozdrawiam


Kolega za pewne chciał nawiązać to swoich poprzednich postów w których pobiera dane z pliku tekstowego smile.gif Robisz tak jak napisał Cysiaczek, lub po prostu:

  1. <?php
  2. $plik_do_wczytania = "plik.txt";
  3. $plik = file($plik_do_wczytania);
  4. ?>


jeśli dobrze zrozumiałem.
Maciucha67
Chodzi mi bardziej o to, czy plik aktualnie przeglądany (a raczej jego nazwa) może być automatycznie odczytana jako zmienna.
Mam galerię, w której poszczególne obrazy obsługiwane są przez pliki np 01.php, 02.php itd.
Otwierając plik 02.php (przeglądając go) chcę zrobić nawigację przez zaadresowanie linku do poprzedniego obrazu przez 02-1(.php) - poprzedni (02 pochodzi z nazwy pliku otwartego) i 02+1(.php ) obraz następny.
Trochę to pokrętne, ale pozwoliłoby trochę zautomatyzować proces tworzenia galerii.
A może można to zrobić prościej??

Dzięki wielkie za pomoc!
webdice
Pokaż jak dokładnie jak wygląd link i czy korzystasz z mod_rewrite, oraz przykładowo plik 02.php.
marcio
moze lepiej wyswietlac po id?A nie odejmowac z nazwy pliku ktory jest stringiem -1 wedlug mnie to nie ma sensu
Cysiaczek
Przecież, aby otworzyć plik musisz znać jego nazwę. Jaki więc problem? Ta samą nazwę (tylko utnij rozszerzenie) możesz przypisać gdzie tylko chcesz i przekazać do linku.
Maciucha67
No tak, spróbuję w ten sposób.
Wydaje się oczywiste.
Wielkie dzięki!
sniezny_wilk
No to może lepiej na $_GET[] to zrobić?

  1. <?php
  2. if($_GET["page"] == "")
  3. {
  4.  $strona = 0;
  5. }
  6. else
  7. {
  8.  $strona = $_GET["page"];
  9. }
  10.  
  11. $plik = file($_GET["page"].".php");
  12.  
  13. //a linki
  14.  
  15. echo "<a href='".$strona+1.".php'>dalej</a>";
  16. //itp
  17. ?>
Maciucha67
Bardzo dziękuję za pomoc i wyczerpującą podpowiedź.
Pozdrawiam
marcio
Sorki ale czy tu:
  1. <?php
  2. $plik = file($_GET["page"].".php");
  3. ?>

Nie ma poinson null byte i LFI??
Jak juz chcesz to robic za pomoca GET uzywaj basename()
sniezny_wilk
Cytat(marcio @ 24.12.2007, 16:50:09 ) *
Sorki ale czy tu:
  1. <?php
  2. $plik = file($_GET["page"].".php");
  3. ?>

Nie ma poinson null byte i LFI??
Jak juz chcesz to robic za pomoca GET uzywaj basename()


W sumie masz rację, ale przedstawiłem pierwszy lepszy "suchy" pomysł na rozwiązanie tego problemu, nie pomyślałem od razu o zabezpieczeniu tego.
marcio
NIe no spoko nie czepiam sie, ale skoro sa swieta bylem tak dobry zeby o tym przypomniec biggrin.gif

P.S tym bardziej ze uzywa sie funkcji otwierajacej plik wiec mozna podejrzec zrodlo calego skryptu a o LFi to juz nawet nie wspomne, chyba ze sa magiczne slashe to w sumie poinson null byte nie dziala

P.S w sumie to naucz sie dobrych nawykow ja tam specjalista nie jestem ale jak bys przypadkiem nie dal rozszerzenia to jest tez RFi wiec jak juz nie uzywasz switch to sprawdzaj za pomoca file_exist czy dany plik jest na localnym servie bo jak nie to mozna tam dolaczyc wlasny skrypt z i nnego servera z rozszerzeniem .txt i to wsio
Maciucha67
A możecie bliżej o tych skrótach i zabezpieczeniach (chodzi o LFi, RFi etc.?
jestem początkujący w php i dobrze byłoby to też poznać.
sniezny_wilk
Tutaj jest to dobrze napisane smile.gif Poczytaj...
marcio
Poprostu zamiast
  1. <?php
  2. $plik = file($_GET["page"].".php");
  3. ?>

robisz np:
  1. <?php
  2. $page = $_GET['page'];
  3. if(file_exist($page.'.php') && is_file($page.'.php')) {
  4. include(basename($page, '.php'));
  5. }
  6. else {
  7. echo('<h1>Blad nie odnaleziono strony</h1>');
  8. }
  9. ?>

Czy jakos tak biggrin.gif mniej wiecej o to chodzi
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.