ďťż

[PHP]skrypt dnia tygodnia oczywiścia wywala errory :/

       

Podstrony


telcocafe

Tak więc napisałem prosty skrypt, który wyświatla jaki jest dzień tygonia. No ale coś się stało że wywala mi error

Parse error: parse error, unexpected T_IF in /home4/zu/zupy/index.php on line 139

No a kod jest taki
<?php $data= date ("l") if (stripslashes($data)!== "monday"){ echo ("teraz jest poniedziałek"); } elseif (stripslashes($data)!== "tuesday"){ echo ("teraz jest wtorek"); } elseif (stripslashes($data)!== "wednesday"){ echo ("teraz jest środa"); } elseif (stripslashes($data)!== "thursday"){ echo ("teraz jest czwartek"); } elseif (stripslashes($data)!== "friday"){ echo ("teraz jest piątek"); } elseif (stripslashes($data)!== "saturday"){ echo ("teraz jest sobota"); } elseif (stripslashes($data)!== "sunday"){ echo ("teraz jest niedziela"); }else{ echo ("chyba nie działa skrypt"); } ?>

Na początku warunek był prosty np. ($data == monday) i był też taki sam błąd. Potemurozmaiciłem skrypt i był taki jak teraz, tylko w warunkach nie było dni tygodnia w cudzysłowach. Czekam na odpowiedzi. Jest Jeszcze początkujacym w PHP, ten skrypt napisałem tylko dla ćwiczeń, jednak jeżeli ktos odpowie i bedzie mi działać to zawsze będę miał canne doświadczenie, a inni czytelnicy forum też by mogli skorzystać :D



$data= date ("l");

Średnik na końcu. I nie wiem po co to stripslashes($data). Poza tym zmień warunek z !== na ==, inaczej nie będzie działać.

Bardzo dziekuje 0lukasz0. Już nie wywala errora, no ale jest mały problem. Wyświetla mi tekst z else, więc wychodzi, że coś źle napisałem warunki :( To jest sztuka warunki postawić ;) Porsze o odpowiedzi, bo jestem ciekaw dlaczego-to-tak-jest

---edit---
Już działa! Problem był banalny, nazwy dni trzeba było wpisac zaczynając z duzej litery :P Jak coś to możecie używa skryptu u siebie.
<?php $data= date ("l"); /*skrypt by Wiklin © 2005 www.fingerb.prv.pl*/ if ($data== Monday){ echo ("teraz jest poniedziałek"); } elseif ($data== Tuesday){ echo ("teraz jest wtorek"); } elseif ($data== Wednesday){ echo ("teraz jest środa"); } elseif ($data== Thursday){ echo ("teraz jest czwartek"); } elseif ($data== Friday){ echo ("teraz jest piątek"); } elseif ($data== Saturday){ echo ("teraz jest sobota"); } elseif ($data== Sunday){ echo ("teraz jest niedziela"); }else{ echo ("chyba nie działa skrypt"); } ?>
Użytkownik wiklin edytował ten post 03 sierpień 2005, 20:37
Jeśli mogę się wtrącić to bym trochę ulepszył kod:

1. Niepotrzebnie dajesz po każdym warunku echo, ja bym tam dał $data = "tutaj_dzień_tygodnia"; i na końcu tylko jedno echo("teraz jest $data"); - tak jest bardziej profesjonalnie :).
2. Ostatni warunek jest chyba niepotrzebny, nie ma tutaj więcej możliwości.
3. Spróbuj rozbudować skryp, np. o datę (dzień, miesiąc rok).



Dzięki wielkie, ale troszkę nie zrozumiałem z tym pierwszym punktem. Jeżeli tak zrobię to mi będa się wyświetlać nazwy angielskie, a niektórzy co angielskiego nei znają to się pogubią. A z rozbudowaniem skryptu to nie bede miał problemu, tylko moze na forum jest ktos kto zna literki do date, no bo np. l to dzień tygodnia, j to dzień, m to miesiąc, y to rok (dwie cyferki tzn. np. 05), h to godzina, i to minuta, a może ktos zna resztę?

1. Nie całkiem się zrozumieliśmy, daje przykładowy kawałek:
if ($data == Monday){ $data = "poniedziałek"; } elseif ($data == Tuesday){ $data = "wtorek"; } echo ("teraz jest $data");
Oczywiście możesz zostawić tak jak jest, ale tak wydaje się być bardziej profesjonalnie (tak w ogóle to ja bym zastąpił if switchem). Mógłbyś też zastąpić date(l) na " w - dzień tygodnia, liczbowy, tzn. od "0" (Niedziela) do "6" (Sobota)" zaoszczędzisz trochę bajtów, wiem, że to niewiele, ale ja nawet najmniejsze skrypty staram się optymalizować.

2. http://pl.php.net/ma...nction.date.php

Bardzo dziękuję :D Uwzględnię to. No ale tak myślałem żeby zrobic jakiś skrypt cenzury i skrypt by tak wyglądał:

$data= date("l");
echo "teraz jest".$data"!";

No i jakiś tam skrypt cenzury miałby ustwione np. Monday na poniedziałek, no i w poniedziałek byłoby po Polsku, a w resztę dni po angielsku, ale oczywiście bym to przetłumaczył dalej :) Czyli szukam tylko skryptu cenzury i tyle. Myślę ze nie będę zakładał już nowego tematu. Tak więc poszukuję skryptu PHP, który by zamieniał jakis wyraz na inny (określony w kodzie). Może kożystać ten skrypt z plików tekstowych jak coś, ale bazy danych to ja nie mam na za.pl No i ogólnie chodzi o skrypt w rodzaju takiej opcji na phpBB. No i tyle miałem do powiedzenia.

a ja bym użył czegoś takiego:
<?php  $data= date ('w');  $dzien_tygodnia = array(0 => 'niedziela', 1 => 'poniedziałek', 2 => 'wtorek', 3 => 'środa', 4 => 'czwartek', 5 => 'piątek', 6 => 'sobota');  echo 'teraz jest '.$dzien_tygodnia[$data]; ?>
nie sprawdzałem więc jak coś nie tak to pisz :P

nie wiem czy o to ci chodzi bo trudno mi zrozumieć co ty faktycznie chcesz napisać :blink:
<?php  $data= date ('w');  $data_en = date ('l');  $dzien_tygodnia = array(0 => 'niedziela', 1 => 'poniedziałek', 2 => 'wtorek', 3 => 'środa', 4 => 'czwartek', 5 => 'piątek', 6 => 'sobota');  if ($data == 1) {    echo 'teraz jest '.$dzien_tygodnia[$data];  } else {    echo 'teraz jest '.$data_en;  } ?>

no powiedzmy, ale nie chodziło, żeby była data i Polska i angielska. Chodziło o to, że skrypt ograniczał by sie tylko do <?php $data_en = date ('l'); echo 'teraz jest '.$data_en; ?>
No i byłby skrypt cenzurujący, który miałby ustawione, żeby np. Monday zmieniać na poniedziałek i tak inne dni tygodnia. Chyba rozumiesz?

Wydaje mi się, że chodzi Ci o wyrażenia regularne:
- http://pl.php.net/ma...reg-replace.php
- Google + wyrażenia regularne


No i byłby skrypt cenzurujący, który miałby ustawione, żeby np. Monday zmieniać na poniedziałek i tak inne dni tygodnia. Chyba rozumiesz?

no prawie to :). Chodzi tylko o to, zeby cenzurowało troszkę inaczej. jeśli będę miał zmienną $data = date ("l") to nie dam jej w takim stanie do zmieniania wyrazów. Czyli np. musi być $data == Monday. trochę zawiło tłumaczę, ale spróbuję zrobić to troszkę jaśniej. Chce aby to Monday zamieniło mi na poniedziałek. No ale te Monday musi być wskazane gdzieś, a z resztą chyba dam se spokój i użyje Twój sposób na ten dzień tygodnia. No ale dzięki za chęci, no i dzięki 0lukasz0 że wogle powiedziałeś że to wyrażenia regularne, bo bym na to nigdy nie wpadł, a na znanych przeze mnie kursach tego nie było :) To dzięki chłopaki, naprawdę wielkie dzięki. No ale chyba już skńczmy pisać no bo wszystko wiem co chciałem sie dowiedzieć. Jeszcze raz dziękuję :)


jeśli będę miał zmienną $data = date ("l") to nie dam jej w takim stanie do zmieniania wyrazów
a dlaczego nie?? :P
zobacz to:
<?php  $data_en = date ('l');  $ocenzurowany = str_replace ("Thursday", "czwartek", "$data_en");  echo $ocenzurowany; ?>
działa tylko na czwartek, ale możesz tak zrobić dla innych dni :)
Użytkownik maverik edytował ten post 04 sierpień 2005, 15:52
Maverik ma tutaj rację ze str_replace, ereg_replace jest bardzo podobne do str_replace, ale służy raczej w sytuacjach kiedy nie znamy dokładnego źródła, np. mamy wyraz_niecenzuralny i wyraz_wulgarny (można dodać, np. możliwe błędy ort. w tych słowach) i oba byśmy chcieli zamienić na wyraz CENZURA, a w twoim wypadku bardziej pasuje str_replace.

Ale i tak mi najbardziej spodobał się pomysł Maverika z tablicą w poście 8 na tej stronie.

EDIT:
Odnośnie wyrażeń regularnych znalazłem fajną stronę: http://bedkowski.pl/php_regex/
Użytkownik 0lukasz0 edytował ten post 05 sierpień 2005, 16:59
No, pomysł z tablica jest spoko. Tylko, ze wiecie, ledwo co przeczytałem kurs PHP więc niewiele wiem i chcę sobie poćwiczyć. Kiedyś jeszcze dojde do wyrażeń regularnych w jakims bardziej złożonym kursie :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.