Autor Zpráva
jonge
Profil
Chci nahradit text pomocí funkce strtr(), jenomže celý dokument mám v UTF-8 a funkce strtr() toto kódování nepodporuje. Existuje nějaká jiná podobná funkce která by UTF-8 podporovala, nebo to budu muset udělat pomocí str_replace/preg_replace/ereg_replace?
joejoe
Profil *
zkus preg_replace_all("/aa/u", "bb");
Peca
Profil
No nevím, ale já problémy s utf nemám. Je ten souboru uložený v utf?
jonge
Profil
Peca
Jo, to se neboj, zase taková lama nejsem, programování se věnuju už tři roky a teprve teď potřebuji použít funkci strtr ale nejede to kvůli kódování :o(
Mimochodem tady je skript:

<?php

header("content-type: text/html; charset=utf-8");

$text = "Příliš žluťoučký kůň úpěl ďábelské ódy.";
$text = mb_strtolower($text, "UTF-8");
$text = strtr($text, "áčďéěíňóřšťůúýž", "acdeeinorstuuyz");

echo $text;
?>


Zkus to ty jestli ti to pojede.
Peca
Profil
Problém je asi v různé délce jednotlivých znaků. Mám skript na přepis adres, kde je to dělané pomocí pole a funguje:
$trans = array("á"=>"a", "ä"=> "a", "č"=>"c", "ď"=>"d", "é"=>"e", "ě"=>"e"....);
$url=strtr($url, $trans);
jonge
Profil
Peca
Jasně, takto to funguje ale zkrácenou verzí ne... díky alespoň za toto.
Alphard
Profil
UTF je v některých případech zvláštní :-)
zkuste třeba: echo strlen ("ěščřžýáíéů"); // bude to 10?
Yrrah
Profil
Anebo zkus
http://cz.php.net/manual/cs/function.mb-ereg-replace.php

To by snad mělo pomoci.
Yrrah
Profil
Alphard
Ne, to asi těžko. Leda že by použil mb_strlen()
Yrrah
Profil
A ještě bych chtěl dodat, že UTF není nikdy zvláštní. Spíše jsou zvláštní úsměvné metody, které někteří lidé pro zpracování UTF řetězců používají :-)
jonge
Profil
Yrrah
O těchto funkcích samozřejmě vím, chtěl jsem jen nějakou krátkou funkci abych to nemusel rozepisovat... co už.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0