Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pierwszy skrypt :)
Forum PHP.pl > Forum > Przedszkole
chou
Witam!

Zaczełem dzisiaj pracę z php, *już wcześniej próbowałem, ale mi nie wychodziło mad.gif *

No cóż pierwszy srypt gotowy, do czego może się przydać nie wiem tongue.gif
A więc:
Skrypt sprawdza czy plik istnieje, jeżeli istnieje to sprawdza czy istnieją w nim jakieś informacje,..
Jeżeli nie istnieją zadne informacje w pliku, to tworzy '@dzisiejszą/aktualną' datę.

Jeżeli plik nie istniał to tworzy nowy plik z nową datą

Jestem ciekawy jak to wygłąda w oku znającego się php`owca winksmiley.jpg
Czy coś robię źle, itp.

Dzięki za zainteresowanie

może się komuś przyda

  1. <?php
  2.  
  3. $plik = "C:\\......\\time.txt"; #http:\\www.myhomepage.pl\costam.php
  4.  
  5.  
  6. if(file_exists($plik)) {
  7. print "plik istnieje<br>";
  8.  
  9. $plik = fopen("time.txt", "r");
  10. while ($txtinfo = fscanf($plik, "%s\t%s\t%s\n")) {
  11.  list ($data) = $txtinfo;
  12. }
  13. if (empty($data)) {
  14. print "Data Nie istnieje zostala utworzona nowa data<br>";
  15. $pliksave = fopen('time.txt', 'a+', 1);
  16. $text = date("d-m-y");
  17. fwrite($pliksave, $text);
  18. } else {
  19. print "istnieje data<br>";
  20. }
  21. fclose($plik);
  22. } else  {
  23. print "plik nie istnieje<br>";
  24. print "zostl utworzony nowy plik z nowa data<br>";
  25. $pliksave = fopen('time.txt', 'a+', 1);
  26. $text = date('d.m.y')."/".date('H:i:s');
  27. #albo:
  28. # $text="\n Używał=$HTTP_USER_AGENT "."\n IP=$REMOTE_ADDR"."\n Przybył ze strony =$HTTP_REFERER\n".date('d')."-".date('M')."-".date('Y')."/".date('h').":".date('i')."\n\n";
  29. fwrite($pliksave, $text);
  30. }
  31. fclose($plik);
  32. print "to sa informacje z pliku: $data<br>";
  33.  
  34. ?>


p.s.: wydaje mi się, że nie wszystko jest tak jak powinno.

można na końcu dodać
  1. <?php
  2.  
  3. $plik = fopen("time.txt", "r");
  4. while ($txtinfo = fscanf($plik, "%s\t%s\t%s\n")) {
  5.  list ($data) = $txtinfo;
  6. print "to sa informacje z pliku: $data<br>"; # to jest print z lini 32
  7. }
  8. fclose($plik);
  9.  
  10. ?>

wtedy będzie zawsze na końcu odczytywał nowe / po zmianie informacje z pliku.
TomASS
Może "prawdziwym pehapowcem" nie jestem ale coś napisze smile.gif

To tak: ogólnie nie jest źle, trzeba troszkę nawyków nabrać:
1. Jeśli masz jedną instrukcję po elese, if, while itp.. to możesz napisać:
  1. <?php
  2.  
  3. else {
  4. print "istnieje data<br>";
  5. }
  6.  
  7. ?>

Ale możemy prościej napisać:
  1. <?php
  2.  
  3. else print "istnieje data<br>";
  4.  
  5. ?>


2. Możesz zamiast prinf używać echo:
  1. <?php
  2.  
  3. print "Data Nie istnieje zostala utworzona nowa data<br>";
  4. echo "Data Nie istnieje zostala utworzona nowa data<br>";
  5.  
  6. ?>

Nie wiem dlaczego, ale tak jakoś lepiej to wygląda tongue.gif

3. Ponoć nieco szybciej:
  1. <?php
  2.  
  3. print "to sa informacje z pliku: $data<br>";
  4.  
  5. ?>

Jeste w ten sposób:
  1. <?php
  2.  
  3. echo "to sa informacje z pliku: ".$data."<br>";
  4.  
  5. ?>


Powodzenia smile.gif
Neojawor
Cytat
3. Ponoć nieco szybciej:

najszybciej to jest tak:
  1. <?php
  2. echo 'to sa informacje z pliku: '.$data.'<br>';
  3. ?>

dlatego, że jeśli masz cudzysłów, to php szuka w nim wartości zmiennej, a jeśli masz apostrof, to nie.
dooshek
Po pierwsze: wciecia, ladne formatowanie kodu powoduje, ze pozniej ktos oprocz ciebie (a i tobie tez pewnie to ulatwi) bedzie w stanie to przeczytac i... zrozumiec.

Staraj sie oddzielac bloki funkcjonalne kodu pojedynczymi odstepami (enterami), dzieki temu kod stanie sie bardziej przejrzysty i blokowy.

Ktos tu radzil, ze jest lepiej nie uzywac klamr {} - radze naprawde ich uzywac zawsze - czesto sie okazuje, ze pozniej dopisujac cos do kodu zapominasz o nich i masz blad gotowy...

Ogolnie proponuje zapoznac sie z ktorymis zasadami kodowania (np. z PEARa) i sie do nich stosowac (odpowiednie wciecia, odpowiednie formatowanie kodu, odpowiednie nazywanie zmiennych/funkcji/metod). Chodzi o to, ze jesli zaczynasz to masz duuuze szanse sie dobrze nauczyc i ladnie pisac kod. Jesli od poczatku to zlejesz to pozniej bedziesz mial problemy z przystosowaniem...

Pisz komentarze! Zapoznaj sie z PHPDoc i dokumentuj swoj kod. Na poczatku jest to bardzo trudne ale znowu, jak sie teraz nauczysz to pozniej bedziesz stosowal. Pojedyncze komentarze zaczynajace sie od // tez sa mile widziane szczegolnie przed kawalkami kodu w ktorych robisz jakies czary i z ktorych bezposrednio nie wynika co tam robisz.

To moja interpretacja Twojego kodu winksmiley.jpg

  1. <?php
  2.  
  3. $plik = "C:\\......\\time.txt"; #http:\\www.myhomepage.pl\costam.php
  4.  
  5. if (file_exists($plik)) {
  6. print "plik istnieje<br>";
  7.  
  8. $plik = fopen("time.txt", "r");
  9.  
  10. while ($txtinfo = fscanf($plik, "%s\t%s\t%s\n")) {
  11. list ($data) = $txtinfo;
  12. }
  13.  
  14. if (empty($data)) {
  15. print "Data Nie istnieje zostala utworzona nowa data<br>";
  16.  
  17. $pliksave = fopen('time.txt', 'a+', 1);
  18. $text = date("d-m-y");
  19. fwrite($pliksave, $text);
  20. } 
  21. else {
  22. print "istnieje data<br>";
  23. }
  24.  
  25. fclose($plik);
  26. } 
  27. else {
  28. print "plik nie istnieje<br>";
  29. print "zostl utworzony nowy plik z nowa data<br>";
  30.  
  31. $pliksave = fopen('time.txt', 'a+', 1);
  32. $text = date('d.m.y')."/".date('H:i:s');
  33.  
  34. fwrite($pliksave, $text);
  35. }
  36.  
  37. fclose($plik);
  38.  
  39. print "to sa informacje z pliku: $data<br>";
  40.  
  41. ?>


Zauwaz, ze dzieki odpowiednim wcieciom dokladnie widac co jest w czym zagniezdzone - to bardzo pomaga. Nawet wiecej niz bardzo.

Aha, ja bym uzyl funkcji file_put_contents() i file_get_contents() i moze zrobil to troche inaczej (prosciej?) ale jestem juz troche zmeczony. To jeszcze jedna rada - upraszczaj swoj kod! Czesty blad poczatkujacych programistow to znaczne utrudnianie sobie zycia (oczywiscie wynika to tez z nieznajomosci wszystkich mozliwosci jezyka) ale staraj sie upraszczac. Pomysl teraz nad tym co napisales, przejrzyj manuala od php i sprobuj to napisac jeszcze prosciej. Powodzenia.
chou
Dzięki smile.gif

wszystko się przyda, nie wiem czemu alen stworzenie tego skryptu sprawiło mi wielką przyjemność, już wiem dlaczego większość programistów chodzi wesołych cool.gif

poprawiłem troszeczkę ten skrypt i wyszło:
  1. <?php
  2.  
  3. $plikb = 'C:\\.....\\time.txt';
  4.  
  5. if (file_exists($plikb)) {
  6. print 'plik istnieje<br>';
  7.  
  8. $cojestwpliku = substr(file_get_contents('time.txt'),0,-1);
  9.  
  10. // sprawdza czy plik jest pusty, jezeli tak tworzy nowa date,. jezeli jest jusz da
    ta nic nie robi.
  11. if (empty($cojestwpliku)) {
  12. print 'Data Nie istnieje zostala utworzona nowa data<br>';
  13.  
  14. $text = date('d-m-y');
  15.  
  16. file_put_contents($plikb, $text);
  17.  }
  18. else {
  19. print 'istnieje data<br>';
  20. }
  21.  
  22. }
  23. //jezeli plik nie istnial, tworzy nowy z data
  24. else {
  25. print 'plik nie istnieje<br>';
  26. print 'zostl utworzony nowy plik z nowa data<br>';
  27.  
  28. $text = date('d.m.y').'/'.date('H:i:s');
  29.  
  30. file_put_contents($plikb, $text);
  31.  
  32. }
  33.  
  34.  
  35. print 'to sa informacje z pliku: '.$cojestwpliku.'<br>';
  36.  
  37. ?>


najwięcej w tworzeniu tego skryptu problemów sprawiło mi sprawdzanie czy w pliku są jakieś informacje, dopiero po długotrwałych poszukiwaniach, testeach itd. wpadłem na "empty".
Ale teraz jeżeli mam 2 wartości w pliku:
w pierwszej lini jest wartość:
a=2 | 13:43:01
w drugim
jakis tam tekst


to jak zrobić żeby plik sprawdzał czy istnieje wartość a = 2 i data ?
substr (0,14) ?....


teraz mogę zrobić ten skrypt jako funkcję:
  1. <?php
  2.  
  3. function datecheck($plikb)  {
  4. //.. tu wkleić skrypt
  5. }
  6.  
  7. // mogę teraz wywołać ten skrypt tak:
  8. $plikb = 'C:\\.....\\time.txt';
  9.  
  10. datecheck($plikb);
  11.  
  12. ?>


p.s.: jak mam ustawić php.ini żeby był zgodny z ustawieniami na serwerach www, i żeby był bezpieczny, tzn. co jeszcze oprócz registry_globals off
na forum niczego nie znalazłem :/ dzięki jeszcze raz za wszelką pomoc
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.