Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP 7 ympäristöongelmako?

helkepet [12.02.2019 10:15:01]

#

Hei!
Kopioin tästä osoitteesta koodia:

<?php
$testi = 'foo';   print($testi . "\n");
$testi = bar;     print($testi . "\n");
$testi = 007;     print($testi+'foobar' . "\n");
?>

saan tulokseksi vain :
"foo bar 7 "

En siis rivin vaihtoja, jos käytän <br> -rivin vaihtoa, niin toimii. Onko ympäristömuuttujissa puute, kun ei toimi?

Petri

Mod. lisäsi kooditagit!

Teuro [12.02.2019 11:09:45]

#

Siis katsotko tulosta lähdekoodista vai nettiselaimen graafista tulkintaa lähdekoodista? Jos ensimmäinen on totta, niin kyllä siellä pitäisi näkyä rivinvaihto, mutta jos jälkimmäinen niin <br /> tai <br> tarvitaan rivinvaihdon tagiksi. Voit myös tulostaa tagien <pre> ja </pre> väliin, jolloin myös rivinvaihtomerkit tulevat merkitykselliksiksi.

Metabolix [12.02.2019 12:07:46]

#

Ensiksi: Älä kopioi koodia vuoden 2000 materiaalista, koska se on PHP:n osalta auttamattomasti vanhentunutta. Esimerkiksi tuo koodisi aiheuttaa jo kaksi virheilmoitusta: sana bar on määrittelemättä, ja lukua ja tekstiä ei voi laskea yhteen plusmerkillä. Eli vaikka materiaalin mukaan ”välttämättä tulostus ei siis ole sitä mitä halutaan”, nykyaikaisesti ajateltuna koodi on aivan selvästi virheellistä.

Itse ongelmaan: PHP tuottaa palvelimella tavallisesti HTML-koodia, jossa rivinvaihto tulkitaan vain välinä. Jos haluat tulostaa pelkkää tekstiä, aseta alussa sopiva otsikko:

<?php
header("Content-Type: text/plain; charset=UTF-8");
echo "rivi 1\nrivi 2\n";

Toinen vaihtoehto on suorittaa PHP-koodia komentorivillä, jossa tulostus on normaalistikin vain tekstiä.

Muista myös käyttää oikeaa merkistökoodausta. Yleensä UTF-8 on nykyään sopiva.

helkepet [12.02.2019 13:36:21]

#

Kiitos!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta