Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z zarządzeniem plikami
Th0e
post 18.09.2012, 17:50:34
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 16.09.2012

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
muflon
post 18.09.2012, 18:13:37
Post #2





Grupa: Zarejestrowani
Postów: 3
Pomógł: 1
Dołączył: 18.09.2012

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


Witam smile.gif

Serwer postawiony na lokalnym serwie u siebie czy na płatnym ?
Go to the top of the page
+Quote Post
melkorm
post 18.09.2012, 18:36:21
Post #3





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


  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.

Ten post edytował melkorm 18.09.2012, 18:37:24


--------------------
Go to the top of the page
+Quote Post
Th0e
post 18.09.2012, 18:53:31
Post #4





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 16.09.2012

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


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ś)

Ten post edytował Th0e 18.09.2012, 18:55:10
Go to the top of the page
+Quote Post
melkorm
post 18.09.2012, 19:06:59
Post #5





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


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.


--------------------
Go to the top of the page
+Quote Post
lukaskolista
post 19.09.2012, 09:19:50
Post #6





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


zawartosc pliku do zmiennej mozna pobrac za pomoca funkcji file_get_contents(). Wszystko dziala jak powinno smile.gif
Go to the top of the page
+Quote Post
Th0e
post 19.09.2012, 14:40:25
Post #7





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 16.09.2012

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


dziękuję za pomoc. nagrodziłem lajkami. temat do zamknięcia
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: 14.07.2025 - 06:59