Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] operacje na stringach, pliki
neoangin
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 11.07.2006
Skąd: Olsztyn

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


Witam,
  1. class zamien
  2. {
  3. function zam($path, $co, $naco)
  4. {
  5. $handle = fopen($this->path, "r+");
  6. $contents = fread($handle, filesize($this->path));
  7. $nowy = str_replace($this->co, $this->naco, $contents);
  8. rewind($handle);
  9. fwrite($handle, $nowy);
  10. fclose($handle);
  11. }
  12. }
  13.  
  14. $zamm = new zamien();
  15. $pierwszy = $zamm->zam("text.txt", "a", "A");


Wyrzuca takie bledy:

Notice: Undefined property: zamien::$path in C:\wamp\www\php_obiektowy\czytanie_i_zamiana.php on line 7

Warning: fopen() [function.fopen]: Filename cannot be empty in C:\wamp\www\php_obiektowy\czytanie_i_zamiana.php on line 7

Notice: Undefined property: zamien::$path in C:\wamp\www\php_obiektowy\czytanie_i_zamiana.php on line 8

Warning: fread() expects parameter 1 to be resource, boolean given in C:\wamp\www\php_obiektowy\czytanie_i_zamiana.php on line 8

Notice: Undefined property: zamien::$co in C:\wamp\www\php_obiektowy\czytanie_i_zamiana.php on line 9

Notice: Undefined property: zamien::$naco in C:\wamp\www\php_obiektowy\czytanie_i_zamiana.php on line 9

Warning: rewind() expects parameter 1 to be resource, boolean given in C:\wamp\www\php_obiektowy\czytanie_i_zamiana.php on line 10

Warning: fwrite() expects parameter 1 to be resource, boolean given in C:\wamp\www\php_obiektowy\czytanie_i_zamiana.php on line 11

Warning: fclose() expects parameter 1 to be resource, boolean given in C:\wamp\www\php_obiektowy\czytanie_i_zamiana.php on line 12

A jak dam to nie w klasie:
  1. $path = "text.txt";
  2. $handle = fopen($path, "r+");
  3.  
  4. $contents = fread($handle, filesize($path));
  5. echo $contents;
  6. echo "<br />";
  7. echo "Po:<br />";
  8. $nowy = str_replace("a","A",$contents);
  9. echo $nowy;
  10. rewind($handle);
  11. fwrite($handle,$nowy);
  12. fclose($handle);
  13.  

To jest okej wszystko i skrypt sie wykonuje - czy ktoś coś zaradzi?
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Komunikaty są dość jasne. Jak nie umiesz angielskiego to przepuść je przez translator i się do nich zastosuj.
Go to the top of the page
+Quote Post
Berg
post
Post #3





Grupa: Zarejestrowani
Postów: 180
Pomógł: 37
Dołączył: 1.05.2008
Skąd: Białystok

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


Nie wiem gdzie czytałeś o obiektówce ale zdecydowanie nie doczytałeś. Do argumentów metody nie odwołujesz się przez $this tylko jak do normalnej zmiennej... Czyli zamiast np. $this->path powinno być $path.

Tak na marginesie to po co upychasz jedną metodę w klasę? Jeśli już koniecznie chcesz stosować OOP to ta metoda powinna być raczej statyczna.

Ten post edytował Berg 2.09.2010, 15:05:59
Go to the top of the page
+Quote Post
zordon
post
Post #4





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

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


wszystko masz napisane jak na dłoni.
ten kod to przerabianie na siłę kodu proceduralnego na obiektowy lub odwrotnie. Albo zrezygnuj z klasy i posługuj się parametrami, które przekazujesz do funkcji, albo przekaż te parametry do konstruktora klasy, przypisz do właściwości i dopiero operuj na właściwościach.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 21:22