Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Zmiana ikonki zależnie od pory
ShamY
post
Post #1





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 11.07.2013

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


Witam,
prosiłbym o radę ponieważ nie wiem jak to ugryźć. Chodzi o to, że chciałbym, aby ikonka zmieniała się zależnie od tego czy jest dzień czy noc. Za tą zmiane odpowiada dodawanie przed "${icon}.jpg" formuły "nt_". Oto kod:
  1. <?php
  2. $json_string = file_get_contents("link");
  3. $parsed_json = json_decode($json_string);
  4. $icon = $parsed_json->{'current_observation'}->{'icon'};
  5. echo "${icon}.jpg";
  6. ?>


Jak go zmodyfikować, aby na przykład po zachodzie (15.43) dodawało "nt_${icon}.jpg", a po wschodzie (7.58) wracało do "${icon}.jpg"?

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
Damonsson
post
Post #2





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Pseudokod:
  1. if(15.43 > date < 7.58) {
  2. echo "nt_${icon}.jpg"
  3. } else {
  4. echo "${icon}.jpg"
  5. }


Ale ja bym jeszcze pobierał JS czas od usera, bo jak ktoś z Australii wejdzie to nie bardzo będzie mu się zgadzać ikonka.

Ten post edytował Damonsson 27.12.2013, 08:03:51
Go to the top of the page
+Quote Post
ShamY
post
Post #3





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 11.07.2013

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


Dzięki za kod. Jak go wstawiłem na strone to wywala mi błąd "Parse error: syntax error, unexpected '<"

  1. <?php
  2. $json_string = file_get_contents("link");
  3. $parsed_json = json_decode($json_string);
  4. $icon = $parsed_json->{'current_observation'}->{'icon'};
  5. if(15.43 > date < 7.58) {
  6. echo "nt_${icon}.jpg"
  7. } else {
  8. echo "${icon}.jpg"
  9. };
  10. ?>


Co do pobierania czasu odwiedzającego jest to niepotrzebne, bo ma to pokazywac aktualną ikonkę tylko dla Polski.
Go to the top of the page
+Quote Post
Damonsson
post
Post #4





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


http://pl.wikipedia.org/wiki/Pseudokod
Go to the top of the page
+Quote Post
ShamY
post
Post #5





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 11.07.2013

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


Ok już zrobiłem, dzięki za pomoc smile.gif

Edit: Niestety wyświetla się tylko pierwszy obrazek:
  1. $czas= getdate();
  2. $h = $czas['hours'];
  3. if($h >= 7.58 && $h < 15.42){
  4. echo "${icon}.jpg";
  5. } else if($h > 15.43 && $h < 7.57){
  6. echo "nt_${icon}.jpg";
  7. }
Go to the top of the page
+Quote Post
Turson
post
Post #6





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


$czas['hours'] zwraca Ci aktualną godzinę, samą godzinę, czyli np. teraz 10.
użyj $czas = date('h.i');
Go to the top of the page
+Quote Post
ShamY
post
Post #7





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 11.07.2013

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


Zmieniłem i niestety też nie działa
Go to the top of the page
+Quote Post
Turson
post
Post #8





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Zauważ, że nie ma takiej liczby, która mieściłaby się w zakresie 15.43-7.57, więc zapis to inaczej:

  1. $czas = date('G.i');
  2. if($czas >= 7.58 && $czas < 15.42){
  3. echo "aktualny czas w przedziale 7.58-15.42";
  4. } else{
  5. echo "aktualny czas w przedziale 15.43-7.57";
  6. }
Go to the top of the page
+Quote Post
ShamY
post
Post #9





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 11.07.2013

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


JESTEŚ WIELKI smile.gif Działa smile.gif Dziękuje bardzo wink.gif

Cześć,
wymyśliłem sobie połączenie skryptu w/w z pobieraniem ikonki w jednej ze stron, całość skryptu:
  1. <?
  2. $czas = date('G.i');
  3. if($czas >= 7.58 && $czas < 15.42){
  4. echo "<img src='/images/background/<?php
  5. $icoJsonData = file_get_contents("link");
  6. $icoData = json_decode($icoJsonData)[0];
  7. echo '' . $icoData->Icon;
  8. ?>'.png width='195' height='195' ";
  9. } else{
  10. echo "<img src='/images/background/night/<?php
  11. $icoJsonData = file_get_contents("link");
  12. $icoData = json_decode($icoJsonData)[0];
  13. echo '' . $icoData->Icon;
  14. ?>'.png width='195' height='195' ";
  15. }
  16. ?>


coś tutaj jest źle, po prostu nie potrafi wyświetlić mi numeru ikonki, gdy klikam pokaż adres obrazka, to w miejscu gdzie powinien być numer ikonki jest cały kod php nie odkodowany.
Ktoś ma jakieś rozwiązanie tego?
Go to the top of the page
+Quote Post
Turson
post
Post #10





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Otwierasz kolejne <?PHP w otwartym już <?PHP, samo kolorowanie składni powinno dać ci do myślenia
Go to the top of the page
+Quote Post
ShamY
post
Post #11





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 11.07.2013

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


No własnie dało i nie wiem jak temu zaradzić...
Go to the top of the page
+Quote Post
Turson
post
Post #12





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Mniej więcej
  1. <?
  2. $czas = date('G.i');
  3. if($czas >= 7.58 && $czas < 15.42){
  4. echo "<img src='/images/background/".
  5. $icoJsonData = file_get_contents("link");
  6. $icoData = json_decode($icoJsonData)[0];
  7. echo '' . $icoData->Icon;
  8. ."'.png width='195' height='195' ";
  9. } else{
  10. echo "<img src='/images/background/night/".
  11. $icoJsonData = file_get_contents("link");
  12. $icoData = json_decode($icoJsonData)[0];
  13. echo '' . $icoData->Icon;
  14. ."'.png width='195' height='195' ";
  15. }
  16. ?>
Go to the top of the page
+Quote Post
markuz
post
Post #13





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


  1. <?php
  2.  
  3. $czas = date('G.i');
  4. if($czas >= 7.58 && $czas < 15.42)
  5. {
  6. echo "<img src='/images/background/";
  7. $icoJsonData = file_get_contents("link");
  8. $icoData = json_decode($icoJsonData)[0];
  9. echo $icoData->Icon.".png width='195' height='195'";
  10. }
  11. else
  12. {
  13. echo "<img src='/images/background/night/";
  14. $icoJsonData = file_get_contents("link");
  15. $icoData = json_decode($icoJsonData)[0];
  16. echo $icoData->Icon.".png width='195' height='195'";
  17. }
  18.  
  19. ?>


A tutaj małe poprawki optymalizacyjne:

  1. <?php
  2.  
  3. $czas = date('G.i');
  4. $icoJsonData = file_get_contents("link");
  5. $icoData = json_decode($icoJsonData)[0];
  6.  
  7. if($czas >= 7.58 && $czas < 15.42)
  8. {
  9. $folder = '';
  10. }
  11. else
  12. {
  13. $folder = 'night/';
  14. }
  15.  
  16. echo "<img src='/images/background/".$folder.$icoData->Icon.".png width='195' height='195'";
  17.  
  18. ?>


Ten post edytował markuz 17.01.2014, 13:18:10


--------------------
Go to the top of the page
+Quote Post
ShamY
post
Post #14





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 11.07.2013

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


Super! Działa, dzięki, sam bym na to nigdy nie wpadł smile.gif
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 Aktualny czas: 20.08.2025 - 04:54