Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> fopen, otwarcie pliku przez zmienną
katomasz
post 24.05.2005, 09:59:50
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Chcę otworzyć plik, którego nazwa kryje się pod zmienną czyli
  1. <?php
  2. $zmienna=&#092;"plik.dat;
  3. $plik=fopen($zmienna, &#092;"r\");
  4.  
  5. ?>

pojawia się komunikat
fopen(plik.dat ): failed to open stream: Invalid argument in M:\STRONA-GOS\Strona\aktual.php on line 35
Natomiast gdy podam bezpośrednio nazwę pliku w funkcji to działa.
Potrzebuję jednak tego pierwszego sposobu. Co zrobić?
Go to the top of the page
+Quote Post
nospor
post 24.05.2005, 10:02:30
Post #2





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




co zrobić? należy pisać poprawnie:
  1. <?php
  2. $zmienna=&#092;"plik.dat\";
  3. $plik=fopen($zmienna, &#092;"r\");
  4. ?>
Widać różnicę?


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

"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
kszychu
post 24.05.2005, 10:02:30
Post #3





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

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


Zapomniałes o cudzyslowiu zamykajacym przy nazwie pliku.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
katomasz
post 24.05.2005, 10:04:23
Post #4





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Przepraszam, ale nie zauważyłem, że w tym przypadku nie wstawiłem cudzysłowu. Normalnie tam jest i dalej wyświetla ten komunikat.
Go to the top of the page
+Quote Post
nospor
post 24.05.2005, 11:50:51
Post #5





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




a pokaż dokladnie kod (copy-paste) który dziala i który nie dziala (tylko dokladnie)


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

"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
katomasz
post 24.05.2005, 12:34:51
Post #6





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


  1. <?php
  2.  
  3. $plik=file(&#092;"nazwy.dat\");
  4.  $licznik=count($plik);
  5.  print $licznik;
  6.  for ($i=0; $i<$licznik; $i++)
  7.  {
  8. $wiersz=explode(&#092;"t\", $plik[$i]);
  9. $pliki=$wiersz[0];
  10. print $pliki;
  11. $file=fopen($pliki, 'r');
  12. if (!$file)
  13.  {
  14. echo'<B><CENTER>Nie ma</CENTER></B>';
  15.  }
  16. echo '<TABLE ALIGN=Center WIDTH=600 CELLPADDING=8 FRAME=BOX><TR><TD>';
  17. while(!feof($file))
  18. {
  19. $czytaj=fgets($file ,999);
  20. echo $czytaj;
  21. }
  22. echo '</TD></TR></TABLE>';
  23.  }
  24.  fclose($file);
  25.  
  26. ?>

Dane o nazwach plików przechowywane są w pliku 'nazwy.dat'. Z tego pliku wyciągane są po kolei nazwy i mają być wyświetlane ich zawartości w tabeli. Wyświetla się właściwa nazwa pliku, ale nie chce się otworzyć, bo zgłasza błąd. Natomiast gdy ręcznie wpiszę
Cytat
fopen("nazwapliku.dat", "r")
to działa.
Go to the top of the page
+Quote Post
nospor
post 24.05.2005, 12:37:04
Post #7





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




A spróbuj zmienną pliki robić tak:
  1. <?php
  2.  
  3. $pliki=trim($wiersz[0]);
  4.  
  5. ?>


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

"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
matid
post 24.05.2005, 12:37:36
Post #8





Grupa: Zarejestrowani
Postów: 362
Pomógł: 0
Dołączył: 18.02.2004
Skąd: Knurów

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


Spróbuj to:
  1. <?php
  2. $pliki=trim( $wiersz[0] );
  3. ?>

zamiast tego co masz teraz.

Edit: 32 sekundy spóźnienia (sic!)

Ten post edytował matid 24.05.2005, 12:39:14
Go to the top of the page
+Quote Post
katomasz
post 24.05.2005, 12:40:45
Post #9





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Dzięki. To działa.
Go to the top of the page
+Quote Post
nospor
post 24.05.2005, 12:43:45
Post #10





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




Dobra rada na przyszlość: dawaj kod, anie coś wyrwanego z kontekstu. Dopiero wtedy widać gdzie jest błąd.

@matid ma się ten refleks biggrin.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

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.07.2025 - 14:22