Gå til innhold

Hjelp til hjemmesideprogrammering, xml data.


Anbefalte innlegg

 

Hei igjen!

 

Først, takk for all hjelp! :) fikk lagt inn php koden på wordpress-siden i går. Får opp riktig sol opp og ned tid. Måtte laste inn en plugin til wordpress for å kunne legge phpkoden rett inn på siden. 

 

Om du bestemmer deg for å prøve å hente ut info rett fra api'et som er omtalt over hadde jeg satt stor pris på om du hadde delt:) Veldig interessert i både sol og måne tid. Ser også at man kan få ut daglengde og hvor mye kortere/lengre dagen er siden i går. Begynner å bli kravstor nå. heheh. Men uansett, takk for all hjelp:)

 

Stian

 

 

Hei

 

Jeg driver faktisk en nettside selv, som jeg tidligere har vært inne på tanken å legge inn værmelding for de fleste steder i Norge på, så at du er kravstor gjør ingen ting. Jeg får brukt for dette selv også, så her er det bare å mase i vei, og kreve alt du måtte ønske.  :D (sjeldent tilfelle, faktisk)

Løsningen jeg har lyst på, er omfattende og enda mer avansert. Felles med sol/måne prosjektet ditt, er at alt bygger på de samme API-ene, som du nå etterspør.

 

Skal se hva jeg kan få fikset i løpet av kvelden, evt imorgen om ikke tiden strekker til.

 

 

Halla!

 

Har du hatt noen fremgang med oppdateringa av phpkoden? :)

 

Stian

Lenke til kommentar
Videoannonse
Annonse

Jeg er nødt til å se på det i løpet av helgen...

Det trengs bare små modifikasjoner, veldig enkle, som sikkert google kan hjelpe deg med. Utsettelser blir det som oftest alltid når fritiden ikke strekker til.

 

Intil videre, kan du endre URL-en til det samme som i python scriptet:
http://api.met.no/weatherapi/sunrise/1.0/?lat=59.9127;lon=10.7461;date=2015-09-11

 

Om jeg ikke tar feil, virker scriptet mitt fortsatt, og du kan så enkelt duplisere uthentingen av solens opp/ned tidspunktert, slik at du altså henter månens tidspunkter i tillegg...

Dette er så enkelt og selvforklarende, at du kan nærmest klippe og lime, uten noe som helst php erfaring.

 

Trikset er å få til php datoen, jeg forventer ikke at du skal fikse dette selv, men noen google søk etter "php date examples" burde gi deg en god pekepinn på hvordan dette skal fikses.

Intil videre, må du altså endre dato manuelt i URL-en.

 

Skal gjøre de nødvendigste endringene når jeg får tid. Blir sannsynligvis imorgen kveld. Er snakk om 10 min fiks, men så er klokken allerede midt på natten her...

Endret av jpg
Lenke til kommentar

PHP5

<?php
setlocale(LC_ALL, 'nb_NO');
date_default_timezone_set('Europe/Oslo');
// Parameters
$name = 'Oslo';
$lat = '59.911111';
$lon = '10.733333';
$ts = strtotime('now');
// API request
$xml = simplexml_load_file('http://api.met.no/weatherapi/sunrise/1.0/?lat=' . $lat . ';lon=' . $lon . ';date=' . date('Y-m-d', $ts));
// Sunrise and sunset
$sun = $xml->xpath('//sun');
$sr = date('H:i', strtotime($sun[0]['rise']));
$ss = date('H:i', strtotime($sun[0]['set']));
// Moonrise and moonset
$moon = $xml->xpath('//moon');
$mr = date('H:i', strtotime($moon[0]['rise']));
$ms = date('H:i', strtotime($moon[0]['set']));
?>

HTML4

<table>
    <tr>
        <td colspan="4">
            <p align="center" style="font-weight: bold;">Sol og måne i <?php echo $name;?>, <?php echo strftime('%A %e.%m', $ts);?></p>
        </td>
    </tr>
    <tr>
        <td rowspan="2">
            <img src="http://symbol.yr.no/grafikk/sym/b38/01d.png"/>
        </td>
        <td>
            <p>Soloppgang <?php echo $sr; ?></p>
        </td>
        <td rowspan="2">
            <img src="http://symbol.yr.no/grafikk/sym/b38/mf/01n.50.png"/>
        </td>
        <td>
            <p>Månen opp <?php echo $mr; ?></p>
        </td>
    </tr>
    <tr>
        <td>
            <p>Solnedgang <?php echo $ss; ?></p>
        </td>
        <td>
            <p>Månen ned <?php echo $ms; ?></p>
        </td>
    </tr>
</table>

Demo: http://jpg.priv.no/resources/forum_diskusjon/yr.php

Endret av jpg
Lenke til kommentar

PHP5

<?php
setlocale(LC_ALL, 'nb_NO');
date_default_timezone_set('Europe/Oslo');
// Parameters
$name = 'Oslo';
$lat = '59.911111';
$lon = '10.733333';
$ts = strtotime('now');
// API request
$xml = simplexml_load_file('http://api.met.no/weatherapi/sunrise/1.0/?lat=' . $lat . ';lon=' . $lon . ';date=' . date('Y-m-d', $ts));
// Sunrise and sunset
$sun = $xml->xpath('//sun');
$sr = date('H:i', strtotime($sun[0]['rise']));
$ss = date('H:i', strtotime($sun[0]['set']));
// Moonrise and moonset
$moon = $xml->xpath('//moon');
$mr = date('H:i', strtotime($moon[0]['rise']));
$ms = date('H:i', strtotime($moon[0]['set']));
?>

HTML4

<table>
    <tr>
        <td colspan="4">
            <p align="center" style="font-weight: bold;">Sol og måne i <?php echo $name;?>, <?php echo strftime('%A %e.%m', $ts);?></p>
        </td>
    </tr>
    <tr>
        <td rowspan="2">
            <img src="http://symbol.yr.no/grafikk/sym/b38/01d.png"/>
        </td>
        <td>
            <p>Soloppgang <?php echo $sr; ?></p>
        </td>
        <td rowspan="2">
            <img src="http://symbol.yr.no/grafikk/sym/b38/mf/01n.50.png"/>
        </td>
        <td>
            <p>Månen opp <?php echo $mr; ?></p>
        </td>
    </tr>
    <tr>
        <td>
            <p>Solnedgang <?php echo $ss; ?></p>
        </td>
        <td>
            <p>Månen ned <?php echo $ms; ?></p>
        </td>
    </tr>
</table>

Demo: http://jpg.priv.no/resources/forum_diskusjon/yr.php

Tusen takk! Funka som bare det  :)

 

Det ser så lett ut når man får det ferdig satt opp sånn:) Men jeg erfarer at det ikke er så lett når jeg skal prøve å fikse ting selv. Jeg la inn Longyearbyen og fikk opp tidene på solen korrekt der. Men månen viste opp 0100 og ned 0100. Når jeg gikk inn på yr så viste deg seg at månen ikke stod opp i Longyearbyen i går. Men i dag gjør den det så nå dukker det opp klokkeslett. Så jeg fant et nytt eksempel hvor solen ikke går ned og månen ikke går opp. Nordpolen! :) http://stian79.com/yr/yr.php. Da ser det sånn ut. Alle klokkeslettene blir satt til 0100. Jeg har sett igjennom apiet. Det er noe som heter never_set og never_rise. og det ser ut som det er noe med true og false. <xs:attribute name="never_rise" type="xs:boolean"/> Poenget er at det skal dukke opp tekst som sier at solen ikke går ned eller ikke står opp. Jeg har googla i mange timer nå for å se om jeg kunne klare det selv. Men den gang ei... Må ty til deg igjen:) Har du noen forslag? :)

Endret av tele_tubs
Lenke til kommentar

Det kan sikkert stemme. Grunnen til at jeg lurte, er at mange (bevist) bruker eldre utgaver, enten fordi koden ofte er litt eldre, og derfor ikke nødvendigvis fungerer 100% identisk før den er modifisert. Men så har du også bug-faktoren, mange er redd for å bruke de nyeste versjonene pga de er relativt lite testet, og kan inneholde sårbarheter som eventuelt ikke blir oppdaget og rettet før det har gått en stund.

 

Tenkte først å skrive med kode som kun fungerer i v.5.4+, men så fant jeg en bedre metode (samt lærte noe nytt), slik at scriptet nå skal være bakover kompatibelt til og med versjon 5.0.

 

Større endringer på gang, så det er ikke sikkert jeg rekker å fullføre idag...

Lenke til kommentar

Jeg bruker php 5.6. Står at støtte for php 5.4 opphører 15.september.

 

Takk for tilliten:) Hvis jeg høres ut som en som har nok kunnskap til at jeg med vilje ville bruke en eldre versjon har jeg gjort en god jobb med å dekke til min mangel på kunnskap:) hehe

 

Hehe :)

Mange web-hoteller der ute på nettet, bruker svært ofte eldre versjoner. Hos noen av dem, kan du heldigvis velge mellom flere, men ikke alltid nyeste...

 

Hoster du nettsiden din selv, eller leier du server? Bare nysgjerrig :)

 

Selv bruker jeg 5.6.7-1 på min egen dedikerte linux server.

Aldri hatt problemer relatert til forskjellige php versjoner, men jeg har 5-6.000 linjer med php kode som nøye må gjennomgås (og byttes ut) før jeg kan oppgradere til versjon 7.0 (lanseres 12. november). Versjon 6 hoppes over...

Lenke til kommentar

 

Jeg bruker php 5.6. Står at støtte for php 5.4 opphører 15.september.

 

 

Takk for tilliten:) Hvis jeg høres ut som en som har nok kunnskap til at jeg med vilje ville bruke en eldre versjon har jeg gjort en god jobb med å dekke til min mangel på kunnskap:) hehe

 

 

Hehe :)

Mange web-hoteller der ute på nettet, bruker svært ofte eldre versjoner. Hos noen av dem, kan du heldigvis velge mellom flere, men ikke alltid nyeste...

 

Hoster du nettsiden din selv, eller leier du server? Bare nysgjerrig :)

 

Selv bruker jeg 5.6.7-1 på min egen dedikerte linux server.

Aldri hatt problemer relatert til forskjellige php versjoner, men jeg har 5-6.000 linjer med php kode som nøye må gjennomgås (og byttes ut) før jeg kan oppgradere til versjon 7.0 (lanseres 12. november). Versjon 6 hoppes over...

Leier plass hos noe.COM. Har brukt WordPress til publisering. Men har bare så vidt startet. Driver egentlig bare reaserch enda. Samler sammen elementer som sol og måne tider samt daglengde:) Holder på med et ip-kamera i tillegg til et enkelt værvarsel. Lyst å legge til noen egne sensorer som temperatur og vind etterhvert og. Vi får se:)

Lenke til kommentar

<?php
/*
 * Astro widget, for blogs and webpages.
 * Version 0.3 [2015-09-13]
 * Licence: CC BY 3.0: http://creativecommons.org/licenses/by/3.0.
 *
 * Written by jpg
 * jpg.priv.no
 *
 * Data from api.met.no are licensed under CC BY 3.0: http://creativecommons.org/licenses/by/3.0.
 * Conditions for data use: http://api.met.no/license_data.html
*/

date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'nb_NO');

// Parameters
$title = 'Sol og måne i Bergen';
$parameter['lat'] = '60.389444';
$parameter['lon'] = '5.33';
$parameter['from'] = date('Y-m-d', strtotime('now'));
$parameter['to'] = date('Y-m-d', strtotime('+2 day'));
//$parameter['date'] = date('Y-m-d', strtotime('now'));

// API request
// http://api.met.no/weatherapi/sunrise/1.0/documentation
$url = 'http://api.met.no/weatherapi/sunrise/1.0/?';
foreach ($parameter as $key => $value)
    $url .= $key . '=' . $value . ';';
$astrodata = simplexml_load_file(substr($url, 0, -1));
foreach ($astrodata->time as $time) {
    $current = (string)$time['date'];
// Sunrise and sunset
    $date[$current]['sun']['never_rise'] = ($time->location->sun['never_rise'] == 'true') ? 'Solen står ikke opp' : null;
    $date[$current]['sun']['rise'] = (isset($time->location->sun['rise']) ? 'Solen opp ' . date('H:i', strtotime($time->location->sun['rise'])) : null);
    $date[$current]['sun']['never_set'] = ($time->location->sun['never_set'] == 'true') ? 'Solen går ikke ned' : null;
    $date[$current]['sun']['set'] = (isset($time->location->sun['set']) ? 'Solen ned ' . date('H:i', strtotime($time->location->sun['set'])) : null);
// Moon phase, moonrise and moonset
    $date[$current]['moon']['never_rise'] = ($time->location->moon['never_rise'] == 'true') ? 'Månen står ikke opp' : null;
    $date[$current]['moon']['rise'] = (isset($time->location->moon['rise']) ? 'Månen opp ' . date('H:i', strtotime($time->location->moon['rise'])) : null);
    $date[$current]['moon']['never_set'] = ($time->location->moon['never_set'] == 'true') ? 'Månen går ikke ned' : null;
    $date[$current]['moon']['set'] = (isset($time->location->moon['set']) ? 'Månen ned ' . date('H:i', strtotime($time->location->moon['set'])) : null);
    //$date[$current]['moon']['phase'] = $time->location->moon['phase'];
}
header('Content-Type: text/html; charset=ISO-8859-1');
?>
<!DOCTYPE html>
<html lang="no">
<head>
    <title><?php echo $title; ?></title>
    <meta charset="ISO-8859-1">
    <style>
        p {
            margin: 0;
        }
    </style>
</head>
<body>
<table style="width: 100%; max-width: 350px;">
    <tr>
        <td colspan="4">
            <p style="font-size: 120%; font-weight: bold; text-align: center;"><?php echo $title; ?></p>
        </td>
    </tr>
    <?php foreach ($date as $key => $value) { ?>
        <tr>
            <td colspan="4">
                <p style="font-size: 110%; text-align: center;"><?php echo strftime('%A %e. %B', strtotime($key)); ?></p>
            </td>
        </tr>
        <tr>
            <td>
                <img src="http://symbol.yr.no/grafikk/sym/b38/01d.png"/>
            </td>
            <td>
                <p><?php echo implode('<br>', array_filter($value['sun'])); ?></p>
            </td>
            <td>
                <img src="http://symbol.yr.no/grafikk/sym/b38/mf/01n.50.png"/>
            </td>
            <td>
                <p><?php echo implode('<br>', array_filter($value['moon'])); ?></p>
            </td>
        </tr>
    <?php } ?>
    <tr>
        <td colspan="4">
            <p style="font-size: 75%; color: gray; text-align: center;">
                Astrodata levert av <a href="http://met.no/" style="color: gray; text-decoration: none;">met.no</a>
            </p>
        </td>
    </tr>
</table>
</body>
</html>
LIVE demo: http://jpg.priv.no/resources/forum_diskusjon/yr.php

 

Changelog for v.0.3

  • Velg tidsperiode etter eget ønske.
  • Credits til met.no, i samsvar med lisens for bruk av data.
  • Utbedret grafisk grensesnitt.
  • HTML kode nå i samsvar med HTML5 spesifikasjoner.
  • [bug-fix] Bruker ISO-8859-1 som tegnsett istedet for UTF-8.
  • [bug-fix] Oppgir korrekt informasjon for steder hvor sol/måne ikke står opp eller går ned.
  • [fremtidig] Tilrettelagt for å kunne presentere månens fase.
Endret av jpg
Lenke til kommentar
<?php
/*
 * Astro widget, for blogs and webpages.
 * Version 0.3 [2015-09-13]
 * Licence: CC BY 3.0: http://creativecommons.org/licenses/by/3.0.
 *
 * Written by jpg
 * jpg.priv.no
 *
 * Data from api.met.no are licensed under CC BY 3.0: http://creativecommons.org/licenses/by/3.0.
 * Conditions for data use: http://api.met.no/license_data.html
*/

date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'nb_NO');

// Parameters
$title = 'Sol og måne i Bergen';
$parameter['lat'] = '60.389444';
$parameter['lon'] = '5.33';
$parameter['from'] = date('Y-m-d', strtotime('now'));
$parameter['to'] = date('Y-m-d', strtotime('+2 day'));
//$parameter['date'] = date('Y-m-d', strtotime('now'));

// API request
// http://api.met.no/weatherapi/sunrise/1.0/documentation
$url = 'http://api.met.no/weatherapi/sunrise/1.0/?';
foreach ($parameter as $key => $value)
    $url .= $key . '=' . $value . ';';
$astrodata = simplexml_load_file(substr($url, 0, -1));
foreach ($astrodata->time as $time) {
    $current = (string)$time['date'];
// Sunrise and sunset
    $date[$current]['sun']['never_rise'] = ($time->location->sun['never_rise'] == 'true') ? 'Solen står ikke opp' : null;
    $date[$current]['sun']['rise'] = (isset($time->location->sun['rise']) ? 'Solen opp ' . date('H:i', strtotime($time->location->sun['rise'])) : null);
    $date[$current]['sun']['never_set'] = ($time->location->sun['never_set'] == 'true') ? 'Solen går ikke ned' : null;
    $date[$current]['sun']['set'] = (isset($time->location->sun['set']) ? 'Solen ned ' . date('H:i', strtotime($time->location->sun['set'])) : null);
// Moon phase, moonrise and moonset
    $date[$current]['moon']['never_rise'] = ($time->location->moon['never_rise'] == 'true') ? 'Månen står ikke opp' : null;
    $date[$current]['moon']['rise'] = (isset($time->location->moon['rise']) ? 'Månen opp ' . date('H:i', strtotime($time->location->moon['rise'])) : null);
    $date[$current]['moon']['never_set'] = ($time->location->moon['never_set'] == 'true') ? 'Månen går ikke ned' : null;
    $date[$current]['moon']['set'] = (isset($time->location->moon['set']) ? 'Månen ned ' . date('H:i', strtotime($time->location->moon['set'])) : null);
    //$date[$current]['moon']['phase'] = $time->location->moon['phase'];
}
header('Content-Type: text/html; charset=ISO-8859-1');
?>
<!DOCTYPE html>
<html lang="no">
<head>
    <title><?php echo $title; ?></title>
    <meta charset="ISO-8859-1">
    <style>
        p {
            margin: 0;
        }
    </style>
</head>
<body>
<table style="width: 100%; max-width: 350px;">
    <tr>
        <td colspan="4">
            <p style="font-size: 120%; font-weight: bold; text-align: center;"><?php echo $title; ?></p>
        </td>
    </tr>
    <?php foreach ($date as $key => $value) { ?>
        <tr>
            <td colspan="4">
                <p style="font-size: 110%; text-align: center;"><?php echo strftime('%A %e. %B', strtotime($key)); ?></p>
            </td>
        </tr>
        <tr>
            <td>
                <img src="http://symbol.yr.no/grafikk/sym/b38/01d.png"/>
            </td>
            <td>
                <p><?php echo implode('<br>', array_filter($value['sun'])); ?></p>
            </td>
            <td>
                <img src="http://symbol.yr.no/grafikk/sym/b38/mf/01n.50.png"/>
            </td>
            <td>
                <p><?php echo implode('<br>', array_filter($value['moon'])); ?></p>
            </td>
        </tr>
    <?php } ?>
    <tr>
        <td colspan="4">
            <p style="font-size: 75%; color: gray; text-align: center;">
                Astrodata levert av <a href="http://met.no/" style="color: gray; text-decoration: none;">met.no</a>
            </p>
        </td>
    </tr>
</table>
</body>
</html>
LIVE demo: http://jpg.priv.no/resources/forum_diskusjon/yr.php

 

Changelog for v.0.3

  • Velg tidsperiode etter eget ønske.
  • Credits til met.no, i samsvar med lisens for bruk av data.
  • Utbedret grafisk grensesnitt.
  • HTML kode nå i samsvar med HTML5 spesifikasjoner.
  • [bug-fix] Bruker ISO-8859-1 som tegnsett istedet for UTF-8.
  • [bug-fix] Oppgir korrekt informasjon for steder hvor sol/måne ikke står opp eller går ned.
  • [fremtidig] Tilrettelagt for å kunne presentere månens fase.

 

Hei hei!

 

Nå begynner det å bli skikkelig proft:) Takk for at du deler! :)

 

Men jeg har fått et problem som har oppstått fra den forrige versjonen. Sannsynligvis ikke noe du kan gjøre noe med, men uansett, skal forklare. For å kunne sette PHP koden rett inn i en side i wordpressmalen måtte jeg bytte ut starttaggen <?php med [insert_php] og avslutningstaggen ?> med [/insert_php]. Dette funka med den forrige versjonen. eksempel her: http://www.stian79.com/288-2/

 

Resultatet når jeg gjør det med den nye koden: http://www.stian79.com/317-2/

 

Når jeg åpner koden rett fra serveren funker den nye helt supert: http://stian79.com/yr/yr.php

 

Vet at du ikke hadde noe særlig greie på hvordan jeg skulle sette koden rett inn i wordpress, men har du noen formening utifra feilmeldingen som dukker opp på siden? 

 

Stian

Lenke til kommentar

Hehe, klassisk feil. Du har sikkert ikke byttet ut <?php og ?> alle steder?
De er over alt nemlig, fant 7 av hver...
 
Se om dette kanskje hjelper:

 

<?php
/*
 * Astro widget, for blogs and webpages.
 * Version 0.3-wordpress [2015-09-13]
 * Licence: CC BY 3.0: http://creativecommons.org/licenses/by/3.0.
 *
 * Written by jpg
 * jpg.priv.no
 *
 * Data from api.met.no are licensed under CC BY 3.0: http://creativecommons.org/licenses/by/3.0.
 * Conditions for data use: http://api.met.no/license_data.html
*/
 
date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'nb_NO');
 
// Parameters
$title = 'Sol og måne i Bergen';
$parameter['lat'] = '60.389444';
$parameter['lon'] = '5.33';
$parameter['from'] = date('Y-m-d', strtotime('now'));
$parameter['to'] = date('Y-m-d', strtotime('+2 day'));
//$parameter['date'] = date('Y-m-d', strtotime('now'));
 
// API request
// http://api.met.no/weatherapi/sunrise/1.0/documentation
$url = 'http://api.met.no/weatherapi/sunrise/1.0/?';
foreach ($parameter as $key => $value)
    $url .= $key . '=' . $value . ';';
$astrodata = simplexml_load_file(substr($url, 0, -1));
foreach ($astrodata->time as $time) {
    $current = (string)$time['date'];
// Sunrise and sunset
    $date[$current]['sun']['never_rise'] = ($time->location->sun['never_rise'] == 'true') ? 'Solen står ikke opp' : null;
    $date[$current]['sun']['rise'] = (isset($time->location->sun['rise']) ? 'Solen opp ' . date('H:i', strtotime($time->location->sun['rise'])) : null);
    $date[$current]['sun']['never_set'] = ($time->location->sun['never_set'] == 'true') ? 'Solen går ikke ned' : null;
    $date[$current]['sun']['set'] = (isset($time->location->sun['set']) ? 'Solen ned ' . date('H:i', strtotime($time->location->sun['set'])) : null);
// Moon phase, moonrise and moonset
    $date[$current]['moon']['never_rise'] = ($time->location->moon['never_rise'] == 'true') ? 'Månen står ikke opp' : null;
    $date[$current]['moon']['rise'] = (isset($time->location->moon['rise']) ? 'Månen opp ' . date('H:i', strtotime($time->location->moon['rise'])) : null);
    $date[$current]['moon']['never_set'] = ($time->location->moon['never_set'] == 'true') ? 'Månen går ikke ned' : null;
    $date[$current]['moon']['set'] = (isset($time->location->moon['set']) ? 'Månen ned ' . date('H:i', strtotime($time->location->moon['set'])) : null);
    //$date[$current]['moon']['phase'] = $time->location->moon['phase'];
}
header('Content-Type: text/html; charset=ISO-8859-1');
?>
<!DOCTYPE html>
<html lang="no">
<head>
    <title>[insert_php] echo $title; [/insert_php]</title>
    <meta charset="ISO-8859-1">
    <style>
        p {
            margin: 0;
        }
    </style>
</head>
<body>
<table style="width: 100%; max-width: 350px;">
    <tr>
        <td colspan="4">
            <p style="font-size: 120%; font-weight: bold; text-align: center;">[insert_php] echo $title; [/insert_php]</p>
        </td>
    </tr>
    [insert_php] foreach ($date as $key => $value) { [/insert_php]
        <tr>
            <td colspan="4">
                <p style="font-size: 110%; text-align: center;">[insert_php] echo strftime('%A %e. %B', strtotime($key)); [/insert_php]</p>
            </td>
        </tr>
        <tr>
            <td>
                <img src="http://symbol.yr.no/grafikk/sym/b38/01d.png"/>
            </td>
            <td>
                <p>[insert_php] echo implode('<br>', array_filter($value['sun'])); [/insert_php]</p>
            </td>
            <td>
                <img src="http://symbol.yr.no/grafikk/sym/b38/mf/01n.50.png"/>
            </td>
            <td>
                <p>[insert_php] echo implode('<br>', array_filter($value['moon'])); [/insert_php]</p>
            </td>
        </tr>
    [insert_php] } [/insert_php]
    <tr>
        <td colspan="4">
            <p style="font-size: 75%; color: gray; text-align: center;">
                Astrodata levert av <a href="http://met.no/" style="color: gray; text-decoration: none;">met.no</a>
            </p>
        </td>
    </tr>
</table>
</body>
</html>

 

 

Lenke til kommentar

Hehe, klassisk feil. Du har sikkert ikke byttet ut <?php og ?> alle steder?

De er over alt nemlig, fant 7 av hver...

 

Se om dette kanskje hjelper:

 

 

<?php
/*
 * Astro widget, for blogs and webpages.
 * Version 0.3-wordpress [2015-09-13]
 * Licence: CC BY 3.0: http://creativecommons.org/licenses/by/3.0.
 *
 * Written by jpg
 * jpg.priv.no
 *
 * Data from api.met.no are licensed under CC BY 3.0: http://creativecommons.org/licenses/by/3.0.
 * Conditions for data use: http://api.met.no/license_data.html
*/
 
date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'nb_NO');
 
// Parameters
$title = 'Sol og måne i Bergen';
$parameter['lat'] = '60.389444';
$parameter['lon'] = '5.33';
$parameter['from'] = date('Y-m-d', strtotime('now'));
$parameter['to'] = date('Y-m-d', strtotime('+2 day'));
//$parameter['date'] = date('Y-m-d', strtotime('now'));
 
// API request
// http://api.met.no/weatherapi/sunrise/1.0/documentation
$url = 'http://api.met.no/weatherapi/sunrise/1.0/?';
foreach ($parameter as $key => $value)
    $url .= $key . '=' . $value . ';';
$astrodata = simplexml_load_file(substr($url, 0, -1));
foreach ($astrodata->time as $time) {
    $current = (string)$time['date'];
// Sunrise and sunset
    $date[$current]['sun']['never_rise'] = ($time->location->sun['never_rise'] == 'true') ? 'Solen står ikke opp' : null;
    $date[$current]['sun']['rise'] = (isset($time->location->sun['rise']) ? 'Solen opp ' . date('H:i', strtotime($time->location->sun['rise'])) : null);
    $date[$current]['sun']['never_set'] = ($time->location->sun['never_set'] == 'true') ? 'Solen går ikke ned' : null;
    $date[$current]['sun']['set'] = (isset($time->location->sun['set']) ? 'Solen ned ' . date('H:i', strtotime($time->location->sun['set'])) : null);
// Moon phase, moonrise and moonset
    $date[$current]['moon']['never_rise'] = ($time->location->moon['never_rise'] == 'true') ? 'Månen står ikke opp' : null;
    $date[$current]['moon']['rise'] = (isset($time->location->moon['rise']) ? 'Månen opp ' . date('H:i', strtotime($time->location->moon['rise'])) : null);
    $date[$current]['moon']['never_set'] = ($time->location->moon['never_set'] == 'true') ? 'Månen går ikke ned' : null;
    $date[$current]['moon']['set'] = (isset($time->location->moon['set']) ? 'Månen ned ' . date('H:i', strtotime($time->location->moon['set'])) : null);
    //$date[$current]['moon']['phase'] = $time->location->moon['phase'];
}
header('Content-Type: text/html; charset=ISO-8859-1');
?>
<!DOCTYPE html>
<html lang="no">
<head>
    <title>[insert_php] echo $title; [/insert_php]</title>
    <meta charset="ISO-8859-1">
    <style>
        p {
            margin: 0;
        }
    </style>
</head>
<body>
<table style="width: 100%; max-width: 350px;">
    <tr>
        <td colspan="4">
            <p style="font-size: 120%; font-weight: bold; text-align: center;">[insert_php] echo $title; [/insert_php]</p>
        </td>
    </tr>
    [insert_php] foreach ($date as $key => $value) { [/insert_php]
        <tr>
            <td colspan="4">
                <p style="font-size: 110%; text-align: center;">[insert_php] echo strftime('%A %e. %B', strtotime($key)); [/insert_php]</p>
            </td>
        </tr>
        <tr>
            <td>
                <img src="http://symbol.yr.no/grafikk/sym/b38/01d.png"/>
            </td>
            <td>
                <p>[insert_php] echo implode('<br>', array_filter($value['sun'])); [/insert_php]</p>
            </td>
            <td>
                <img src="http://symbol.yr.no/grafikk/sym/b38/mf/01n.50.png"/>
            </td>
            <td>
                <p>[insert_php] echo implode('<br>', array_filter($value['moon'])); [/insert_php]</p>
            </td>
        </tr>
    [insert_php] } [/insert_php]
    <tr>
        <td colspan="4">
            <p style="font-size: 75%; color: gray; text-align: center;">
                Astrodata levert av <a href="http://met.no/" style="color: gray; text-decoration: none;">met.no</a>
            </p>
        </td>
    </tr>
</table>
</body>
</html>

 

 

 

 

Har nok endra alle, men prøvde på nytt med ditt forslag. Fikk samme resultat http://www.stian79.com/415-2/ Må endre i selve koden også, ikke bare i htmlkoden. Men får det ikke til å funke. 

 

Har googla litt og funnet en plugin som lager en shortcode av koden. Limte inn den og fikk det nesten til. http://www.stian79.com/410-2/. Men da ville ikke tabellen strekke seg ut. Hadde vært best å få det til å funke som det gjore med første versjonen, men skal få det til:) Noen foreslår å lage en custom templet for en side i bloggen, da kan man visstnok lime koden rett inn. 

Lenke til kommentar

Hmmm... da vet jeg ikke om noe løsning...

 

Men jeg lurer på en annen ting

 

Driver en del forskjellige nettsteder, men ingen av dem basert på Wordpress. Er dog noe jeg har hatt planer om siden i sommer, men jeg tror jeg venter litt med akkurat det (skremmende hvor nyttig denne tråden plutselig har blitt).

 

Regner med det er en del arbeid å tilpasse Wordpress malene? Jeg skulle gjerne hatt wordpress inn på en eksisterende nettside nemlig. Alt som skal være rundt selve wp innholdet (menyer, marger, widgets, etc) står klart, bare wp innholdet som gjennstår...

 

Skisse:

2z7itcm.jpg

 

Har du peiling? Lett, vanskelig, komplisert?

 

Kan det hende det er så lett som å bare lime inn wp koden på samme måte som du gjør med scriptet mitt??

 

 

Lenke til kommentar

Hmmm... da vet jeg ikke om noe løsning...

 

Men jeg lurer på en annen ting

 

Driver en del forskjellige nettsteder, men ingen av dem basert på Wordpress. Er dog noe jeg har hatt planer om siden i sommer, men jeg tror jeg venter litt med akkurat det (skremmende hvor nyttig denne tråden plutselig har blitt).

 

Regner med det er en del arbeid å tilpasse Wordpress malene? Jeg skulle gjerne hatt wordpress inn på en eksisterende nettside nemlig. Alt som skal være rundt selve wp innholdet (menyer, marger, widgets, etc) står klart, bare wp innholdet som gjennstår...

 

Skisse:

2z7itcm.jpg

 

Har du peiling? Lett, vanskelig, komplisert?

 

Kan det hende det er så lett som å bare lime inn wp koden på samme måte som du gjør med scriptet mitt??

 

 

 

Først en gladnyhet for min del i alle fall. Fant en ny plugin, Exec-PHP (eller egentlig ganske gammel, ikke oppdatert på 7 år står det) som gjør at jeg kan lime php kodene dine rett inn uten noen modifikasjon. Nå funker det som bare det:) 

 

Nå skulle jeg selvfølgelig ha kunne hjulpet deg med et fornuftig svar. Men det kan jeg nok ikke. Jeg er ganske avhengig av ferdige maler og ting jeg ikke trenger å gjøre så mye med. Men for meg virker det som om Wordpress er relativt fleksibelt og du kan bruke det som du vil. Om du har litt snøring vel og merke. Alle de ferdige malene jeg har bruk er ferdige sider med menyer, widgeter, toppbilde osv. Men det skal være enkelt å tilpasse de fleste malene. Det finnes 100vis av maler. 

Lenke til kommentar
<?php
/*
 * Astro widget, for blogs and webpages.
 * Version 0.3 [2015-09-13]
 * Licence: CC BY 3.0: http://creativecommons.org/licenses/by/3.0.
 *
 * Written by jpg
 * jpg.priv.no
 *
 * Data from api.met.no are licensed under CC BY 3.0: http://creativecommons.org/licenses/by/3.0.
 * Conditions for data use: http://api.met.no/license_data.html
*/

date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'nb_NO');

// Parameters
$title = 'Sol og måne i Bergen';
$parameter['lat'] = '60.389444';
$parameter['lon'] = '5.33';
$parameter['from'] = date('Y-m-d', strtotime('now'));
$parameter['to'] = date('Y-m-d', strtotime('+2 day'));
//$parameter['date'] = date('Y-m-d', strtotime('now'));

// API request
// http://api.met.no/weatherapi/sunrise/1.0/documentation
$url = 'http://api.met.no/weatherapi/sunrise/1.0/?';
foreach ($parameter as $key => $value)
    $url .= $key . '=' . $value . ';';
$astrodata = simplexml_load_file(substr($url, 0, -1));
foreach ($astrodata->time as $time) {
    $current = (string)$time['date'];
// Sunrise and sunset
    $date[$current]['sun']['never_rise'] = ($time->location->sun['never_rise'] == 'true') ? 'Solen står ikke opp' : null;
    $date[$current]['sun']['rise'] = (isset($time->location->sun['rise']) ? 'Solen opp ' . date('H:i', strtotime($time->location->sun['rise'])) : null);
    $date[$current]['sun']['never_set'] = ($time->location->sun['never_set'] == 'true') ? 'Solen går ikke ned' : null;
    $date[$current]['sun']['set'] = (isset($time->location->sun['set']) ? 'Solen ned ' . date('H:i', strtotime($time->location->sun['set'])) : null);
// Moon phase, moonrise and moonset
    $date[$current]['moon']['never_rise'] = ($time->location->moon['never_rise'] == 'true') ? 'Månen står ikke opp' : null;
    $date[$current]['moon']['rise'] = (isset($time->location->moon['rise']) ? 'Månen opp ' . date('H:i', strtotime($time->location->moon['rise'])) : null);
    $date[$current]['moon']['never_set'] = ($time->location->moon['never_set'] == 'true') ? 'Månen går ikke ned' : null;
    $date[$current]['moon']['set'] = (isset($time->location->moon['set']) ? 'Månen ned ' . date('H:i', strtotime($time->location->moon['set'])) : null);
    //$date[$current]['moon']['phase'] = $time->location->moon['phase'];
}
header('Content-Type: text/html; charset=ISO-8859-1');
?>
<!DOCTYPE html>
<html lang="no">
<head>
    <title><?php echo $title; ?></title>
    <meta charset="ISO-8859-1">
    <style>
        p {
            margin: 0;
        }
    </style>
</head>
<body>
<table style="width: 100%; max-width: 350px;">
    <tr>
        <td colspan="4">
            <p style="font-size: 120%; font-weight: bold; text-align: center;"><?php echo $title; ?></p>
        </td>
    </tr>
    <?php foreach ($date as $key => $value) { ?>
        <tr>
            <td colspan="4">
                <p style="font-size: 110%; text-align: center;"><?php echo strftime('%A %e. %B', strtotime($key)); ?></p>
            </td>
        </tr>
        <tr>
            <td>
                <img src="http://symbol.yr.no/grafikk/sym/b38/01d.png"/>
            </td>
            <td>
                <p><?php echo implode('<br>', array_filter($value['sun'])); ?></p>
            </td>
            <td>
                <img src="http://symbol.yr.no/grafikk/sym/b38/mf/01n.50.png"/>
            </td>
            <td>
                <p><?php echo implode('<br>', array_filter($value['moon'])); ?></p>
            </td>
        </tr>
    <?php } ?>
    <tr>
        <td colspan="4">
            <p style="font-size: 75%; color: gray; text-align: center;">
                Astrodata levert av <a href="http://met.no/" style="color: gray; text-decoration: none;">met.no</a>
            </p>
        </td>
    </tr>
</table>
</body>
</html>
LIVE demo: http://jpg.priv.no/resources/forum_diskusjon/yr.php

 

Changelog for v.0.3

  • Velg tidsperiode etter eget ønske.
  • Credits til met.no, i samsvar med lisens for bruk av data.
  • Utbedret grafisk grensesnitt.
  • HTML kode nå i samsvar med HTML5 spesifikasjoner.
  • [bug-fix] Bruker ISO-8859-1 som tegnsett istedet for UTF-8.
  • [bug-fix] Oppgir korrekt informasjon for steder hvor sol/måne ikke står opp eller går ned.
  • [fremtidig] Tilrettelagt for å kunne presentere månens fase.

 

 

Hei igjen, 

 

et lite spørsmål. Den siste linjen i php koden, hva gjør den? Når jeg limer inn koden i en side i bloggen endrer æ, ø og å seg i andre elementer på siden. Tabellen i koden din vises riktig med å i måne. 

  1. header('Content-Type: text/html; charset=ISO-8859-1');
Lenke til kommentar

Grunnen til at det Æ Ø Å ikke fungerer, er at serveren bruker et annet tegnsett, hvor disse bokstavene vanligvis betyr noe annet.

 

Siden du har limt scriptet mitt inn i en wordpress mal, får ikke linje 45 lov til å opplyse om at det er ISO-8859-1 som skal brukes, da wordpress allerede har sendt en tilsvarende (men motstridene) beskjed til nettleseren om at det er et annet tegnsett som skal brukes. (kan bare sendes 1 gang).

 

I tillegg har du (regner jeg med, da du burde) fjernet linje 47-58 samt 94-95. (linjene er med på å definerer HTML dokumentet, men dette har altså allerede blitt utført av wordpress, og skal derfor ikke være med)

Dette betyr at også meta tagen (ln.51) som sier at tegnsettet som skal brukes på denne nettsiden, heter ISO-8859-1, er fjernet.

 

Det finnes ASCII kode, som fungerer uavhengig av tegnsett, men da må du bytte ut Å med å Dette er dog ikke alltid like lett. I dette tilfellet skriver f.eks. php koden selv om det er lørdag eller søndag, men da med vanlig Ø istedet for ø

 

Løsningen du er på jakt etter, er å endre hvilket tegnsett Wordpress skal bruke. Hvordan dette gjøres, er jeg veldig usikker på, men fant i det minste en guide. (dog ikke sikker på om den kan brukes i det hele tatt)

http://theblogpress.com/blog/seeing-weird-characters-on-blog-how-to-fix-wordpress-character-encoding-latin1-to-utf8/

 

Når dette er fikset, skal du (strengt tatt) aldri mer få problemer med bokstaver som vises feil, uansett hva du måtte finne på i fremtiden.

 

Jeg vil på det sterkeste anbefale deg å bytte til UTF-8 (Den "nye" standarden. Kan vise alle tegn riktig, uansett skriftspråk).

Alternativt kan du gå for ISO-8859-1. Denne var tidligere standarden for ihvertfall europeiske nettsider, men flere og flere bytter den ut til fordel for UTF-8.

For å gjøre kaoset komplett, finnes det også et nordisk tegnsett, ISO-8859-15. Men gå for UTF-8, det er det som er fremtiden.

 

I scriptet mitt, har jeg definert ISO-8859-1, men mener scriptet er så universalt skrevet, at du fint kan benytte UTF-8 "out-of-the-box" uten å måtte gjøre noe som helst forandringer.

Lenke til kommentar

Grunnen til at det Æ Ø Å ikke fungerer, er at serveren bruker et annet tegnsett, hvor disse bokstavene vanligvis betyr noe annet.

 

Siden du har limt scriptet mitt inn i en wordpress mal, får ikke linje 45 lov til å opplyse om at det er ISO-8859-1 som skal brukes, da wordpress allerede har sendt en tilsvarende (men motstridene) beskjed til nettleseren om at det er et annet tegnsett som skal brukes. (kan bare sendes 1 gang).

 

I tillegg har du (regner jeg med, da du burde) fjernet linje 47-58 samt 94-95. (linjene er med på å definerer HTML dokumentet, men dette har altså allerede blitt utført av wordpress, og skal derfor ikke være med)

Dette betyr at også meta tagen (ln.51) som sier at tegnsettet som skal brukes på denne nettsiden, heter ISO-8859-1, er fjernet.

 

Det finnes ASCII kode, som fungerer uavhengig av tegnsett, men da må du bytte ut Å med å Dette er dog ikke alltid like lett. I dette tilfellet skriver f.eks. php koden selv om det er lørdag eller søndag, men da med vanlig Ø istedet for ø

 

Løsningen du er på jakt etter, er å endre hvilket tegnsett Wordpress skal bruke. Hvordan dette gjøres, er jeg veldig usikker på, men fant i det minste en guide. (dog ikke sikker på om den kan brukes i det hele tatt)

http://theblogpress.com/blog/seeing-weird-characters-on-blog-how-to-fix-wordpress-character-encoding-latin1-to-utf8/

 

Når dette er fikset, skal du (strengt tatt) aldri mer få problemer med bokstaver som vises feil, uansett hva du måtte finne på i fremtiden.

 

Jeg vil på det sterkeste anbefale deg å bytte til UTF-8 (Den "nye" standarden. Kan vise alle tegn riktig, uansett skriftspråk).

Alternativt kan du gå for ISO-8859-1. Denne var tidligere standarden for ihvertfall europeiske nettsider, men flere og flere bytter den ut til fordel for UTF-8.

For å gjøre kaoset komplett, finnes det også et nordisk tegnsett, ISO-8859-15. Men gå for UTF-8, det er det som er fremtiden.

 

I scriptet mitt, har jeg definert ISO-8859-1, men mener scriptet er så universalt skrevet, at du fint kan benytte UTF-8 "out-of-the-box" uten å måtte gjøre noe som helst forandringer.

 
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');
 
Hmm, dette står i wp-config fila. Det betyr vel egentlig at utf8 allerede er i bruk? 
 
Edit: Hvis jeg fjerner linje 45 vises resten av siden normalt. Hva skjer med scriptet når jeg fjerner den linja?
Endret av tele_tubs
Lenke til kommentar

Ahh, ja, nå forstår jeg. Wordpress sender aldri noen http header med tegnsett, derfor får scriptet mitt lov å sende den istedet...
 
Det scriptet gjør, er å informere nettleseren om at det er ISO-8859-1 som skal brukes, mens nettsiden er designet for UTF-8.
Blander man ISO-8859-1 og UTF-8, eller hvilken som helst annen kombinasjon, får man stort sett et merkelig resultat (slik som nå).
 
Joda, du kan (og bør) fjerne linje 45. Glemte helt å skrive det i forrige innlegg, beklager det.
Den komplette listen blir da: 45, 47-58 og 94-95.
 

I tillegg, jeg vet ikke helt hvilke språkpakker du har installert på serveren (eller om du i det hele tatt har lov til å installere selv), men om det ikke endrer språket på ukedagene til engelsk (eller at det oppstår andre problemer) bør du bytte ut linje 15
Fra:

setlocale(LC_ALL, 'nb_NO');

Til

setlocale(LC_ALL, 'nb_NO.UTF-8');
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...