Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP ja replace-komento

hevonen [24.06.2008 21:30:39]

#

Ongelma:
Korvata ä-kirjaimet tällä %E4, niin että oikeat ä-kirjaimet näkyvät.

Olen yrittänyt ratkaista tätä ongelmaa tuloksetta tällä koodilla:
<?php
$aakko = "%E4";
echo str_replace("ä", $aakko, $string);
?>

Mikä on koodissa vikana, kun ei toimi?

Blaze [24.06.2008 21:36:45]

#

Sulla on str_replacen kaks ekaa parametria väärinpäin.

Tuohonkin on toki valmis funkkari: https://www.php.net/manual/en/function.urldecode.php

hevonen [24.06.2008 23:44:39]

#

Blaze kirjoitti:

Tuohonkin on toki valmis funkkari: https://www.php.net/manual/en/function.urldecode.php

Muutin tuon funkkarin näin:

<?php
$aakko = "%E4";
echo str_replace($aakko, "ä", $string);
?>

Mutta tuloksetta. Ehkä tämä funkkari ei toimi tarkoitukseen.

Mitä tarkoitit tällä funkkarilla:

string urldecode  ( string $str  )

Miten sitä käytetään korvaamaan tuo ä tällä "%E4"?

jideko [25.06.2008 14:10:21]

#

Onko ääkköset siis tekstissä vai URL-osoitteessa?

Jos haluat teksissä muuttaa ä:t varmasti oikein näkyviksi, niin parametrit olivat sinulla aivan oikein päin. Eli str_replacessa ensikis annetaan korvattava ja sitten korvaava. Mutta %E4 ei toimi teksissä, ainoastaan URL-osoitteissa. ä:n korvaaja html-kielessä on &auml; . Eli str_replace("ä","&auml;",$string);
Kannattaa kuitenkin käyttää htmlentities($string); funktiota. Se korvaa myös ö:t ja muut html:n ei tuntemat merkit.

Jos taas haluat kuljettaa tietoa URL-osoitteessa esimerkisi index.php?sivu=kääpiö niin silloin osoitteessa täytyy käyttää URL-muotoa eli index.php?sivu=k%E4%E4pi%F6. Tähän funktio on urlencode($string); ja toisin päin siis urldecode().
%E4 ei näy missään siis ä-kirjaimena.

hevonen [26.06.2008 17:04:03]

#

Kiitos!
Joo tarkotus on korvatat äät tekstistä.

En saanut tätä toimimaan:

str_replace("ä","&auml;",$string);

Mutta miten tuon htmlentities($string) funkkarin saa toimimaan niin, että se muuttaa kaikki äät tekstistä näkyviks.

LaNu [26.06.2008 23:28:59]

#

hevonen kirjoitti:

Kiitos!
Mutta miten tuon htmlentities($string) funkkarin saa toimimaan niin, että se muuttaa kaikki äät tekstistä näkyviks.

Ei onnistu tuolla funktiolla. Se muuttaa kaikki mahdolliset merkit html-vastineikseen. Miksi haluaisit muuttaa vain pienen Ä-kirjaimen?

Tuolla esimerkit: http://codepad.org/PgYQUtC9

hevonen [27.06.2008 17:38:40]

#

Kiitos!
Tuo on parempi vaihtoehto.

Vastaus

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

Tietoa sivustosta