Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z zarządzeniem plikami
Forum PHP.pl > Forum > PHP
Th0e
Witam, jedyne co mi działa z zarządzania plikami po stronie serwera to:

Kod
<?php

// zastosowanie instrukcji fopen
$uchwyt = fopen("plik.txt", "w");

?>


powyższy skrypt tworzy plik.

oraz to:

Kod
<?php


// usunięcie pliku
unlink("style.css");

?>


jednak inne tego typu nie działają, np.

Kod
ale np. gdy chcę wyświetlić zawartość pliku to:

[code]
<?php

// utworzenie uchwytu do pliku
$plik = fopen('plik.txt','r');

echo $zawartosc;

?>


nie wystarcza, muszę napisać takie coś:

Kod
<?php

// utworzenie uchwytu do pliku
$plik = fopen('index.html','r');

// przypisanie zawartości do zmiennej
$zawartosc = fread($plik, 8192);

echo $zawartosc;

?>


lub ewentualnie:

Kod
echo $fopen = file_get_contents("plik.txt");


mimo że podobno mogę korzystać z takich trybów:
http://kursphp.com/tryby_otwierania_pliku.php

nie wiem czemu mi to nie działa, nawet jak skopiowałem gotowca z podsumowania kursu:


Kod
<?php

function zdobadz_email($strona)
{
   // formuła prawidłowego adresu e-mail
   $sprawdz = '/^[a-zA-Z0-9.\-_]+@[a-zA-Z0-9\-.]+\.[a-zA-Z]
   {2,4}$/';
    
   $plik = fopen($strona,'r'); // otwarcie pliku strony
   // utworzenie naszego pliku
   $moj_plik = fopen('tymczasowy_index.txt','a');
   flock($moj_plik, 2); // blokada pliku
    
   // przeszukujemy plik dopóki nie znajdziemy sie na końcu
   while(!feof($plik))
   {
      $linia = fgets($plik); // pobieramy jedną linię
        
      // sprawdzamy, czy znajduje się tam adres e-mail
      // jeśli tak, zapisujemy do naszego pliku
      if (ereg($sprawdz, $linia, $wynik))
         fputs($moj_plik, $wynik);
   }
   fclose($plik); // zamykamy plik strony
    
   // po zapisaniu danych, wskaźnik znajduje się na końcu pliku
   // musimy go przewinąć znów na początek funkcją rewind()
   rewind($moj_plik);
    
   // zawartość zapisanego pliku wczytujemy do tablicy adresów
   // $adresy, z wykorzystaniem funkcji file
   $adresy = file($moj_plik);
    
   // procedura wysyłania maila
   $adres = "przyklad@uzycia.pl";
   $tytul = "Adresy e-mail";
   $wiadomosc = "Znalezione adresy e-mail to: $adresy";
   mail($adres, $tytul, $wiadomosc);
    
   // odblokowanie pliku
   flock($moj_plik, 3);
    
   // zamknięcie
   fclose($moj_plik);
    
   // usunięcie, po wysłaniu e-mailem
   unlink($moj_plik);
}

?>



to on nie działa. Co robię źle? pomocy.
muflon
Witam smile.gif

Serwer postawiony na lokalnym serwie u siebie czy na płatnym ?
melkorm
  1.  
  2. // utworzenie uchwytu do pliku
  3. $plik = fopen('plik.txt','r');
  4.  
  5. echo $zawartosc;
  6.  


Skąd wytrzasnąłeś zmienną $zawartosc o_O.
Th0e
Cytat(melkorm @ 18.09.2012, 19:36:21 ) *
  1.  
  2. // utworzenie uchwytu do pliku
  3. $plik = fopen('plik.txt','r');
  4.  
  5. echo $zawartosc;
  6.  


Skąd wytrzasnąłeś zmienną $zawartosc o_O.


w przykładzie zrobiłem błąd, jednak nawet jak zrobię :

Kod
$plik = fopen('plik.txt','r');

echo $plik;


to pisze mi zamiast tekstu z pliku, wyskakuje mi takie coś:
Resource id #3


PS: uczę się na localhoscie. symulator serwera to webserv 2.0 - wybrałem tryb profesjonalny (php i mysql 5 coś)
melkorm
Jak klikniesz w link do funkcji fopen to zauważysz że to zwraca Zasób (Resource) czyli uchwyt do pliku dzięki któremu możesz dalej operować na pliku. Podobnie jest z wieloma innymi funkcjami jak np mysql_connect itp. Dlatego musisz użyć fread / file_get_contents itp by odczytać zawartość pliku.
lukaskolista
zawartosc pliku do zmiennej mozna pobrac za pomoca funkcji file_get_contents(). Wszystko dziala jak powinno smile.gif
Th0e
dziękuję za pomoc. nagrodziłem lajkami. temat do zamknięcia
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.