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?
Sulla on str_replacen kaks ekaa parametria väärinpäin.
Tuohonkin on toki valmis funkkari: https://www.php.net/manual/en/function.
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"?
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 ä . Eli str_replace("ä","ä",$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.
Kiitos!
Joo tarkotus on korvatat äät tekstistä.
En saanut tätä toimimaan:
str_replace("ä","ä",$string);
Mutta miten tuon htmlentities($string) funkkarin saa toimimaan niin, että se muuttaa kaikki äät tekstistä näkyviks.
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
Kiitos!
Tuo on parempi vaihtoehto.
Aihe on jo aika vanha, joten et voi enää vastata siihen.