Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Replace za multibyte znaky

Zdravím, potřebuju nahradit část textu za mb znaky, zkoušel jsem všemožné fce co jsem našel na googlu (mb_str_replace, mb_replace...) - bez výsledku.

Př.:

$text = str_replace("š","š",$text);
$text = str_replace("á","á",$text);
$text = str_replace("ý","ý",$text);
$text = str_replace("ž","ž",$text);
$text = str_replace("ì","ě",$text);
$text = str_replace("é","é",$text);
$text = str_replace("í","í",$text);
$text = str_replace("ø","ř",$text);
$text = str_replace("è","č",$text);
$text = str_replace("ù","ú",$text);

$text = str_replace("�","",$text); // Tohle ale funguje

Děkuji

Předmět Autor Datum
Co chces nahradit cim? V jakom kodovanie je originalny text? &#cislo neni ziaden multibyte character…
MM.. 17.05.2012 15:50
MM..
Kódování je UTF-8. V textu se zobrazí např. agáta , namísto agáta... č, š atd... to jsou MB zn…
Swix 17.05.2012 15:55
Swix
si si isty ze zdroj je utf-8 (ta escape sekvencia je single-byte characters) a nie unicode? Jak pres…
MM.. 17.05.2012 16:05
MM..
Přesněji netuším jaký je zdroj, dostal jsem tento text - zkoušel jsem přes notepad++ překonvertovat…
Swix 17.05.2012 16:09
Swix
otvor si hexeditor (totalcommander a klavesy F3 a 3) a skontroluj ci su tie escape sekvencie singleb…
MM.. 17.05.2012 16:10
MM..
U každého řádku je něco na způsob xxxxxxxx: xx xx xx xx xx xx xx xx | xx xx xx xx xx xx xx xx. Chyt…
Swix 17.05.2012 16:15
Swix
mas pozerat na tie hexa cisla vedla tych znakov, ty asi moc nemas sajnu co to je kodovanie znakov, c…
MM.. 17.05.2012 16:18
MM..
Kdyz dam hexadecimalni, ukaze se mi to ve stylu xxx |xx xx xx... | xx xx .... | text, a na dalsim ra…
Swix 17.05.2012 16:21
Swix
CISLA mas pozerat, ne zamienat si ich s xx. ja viem jak vypada hexeditor nemusis to tu napodobnovat…
MM.. 17.05.2012 16:23
MM..
ok ok... Jinak v tom textu jsou html tagy... ale to nehraje roli ne?... filer.png
Swix 17.05.2012 16:26
Swix
ok to je vsetko singlebyte. este to nascrolluj na nejake to &#244 alebo ktore ti nefungovalo, ci to…
MM.. 17.05.2012 16:29
MM..
Celý... říkal jsem že má kolem 65 000 řádků... Jelikož jde nejspíš o útržek html a jsou tam html ta…
Swix 17.05.2012 16:33
Swix
Daj si prehladat original subor (napr. aj v tom totalcommanderi, Ctrl+F) ci sa v nom nachadze vobec…
MM.. 17.05.2012 16:44
MM..
Říkám, mám text ve kterém to je, originální soubor není - resp je ve formátu html a zdrojový kód obs…
Swix 17.05.2012 16:50
Swix
No a ved vidis ze tam neni á ale á tak logicky to nenajde á ked v tom subore &#22…
MM.. 17.05.2012 16:57
MM..
Takže: zkusil jsem str_replace("á","á",$text); Ve výpise se stále objevuje ag&#225ta, v t…
Swix 17.05.2012 17:02
Swix
tak ti to przni ten php kod
MM.. 17.05.2012 17:16
MM..
Už mi to jde, zkusil jsem to přes $replace = array(bla bla bla); $for=array(....); a pak jen str_re…
Swix 17.05.2012 17:17
Swix
Inac na dekodovanie HTML escape sekvencii je v PHP funkcia http://www.php.net/manual/en/function.htm…
MM.. 17.05.2012 17:20
MM..
Ok, já se s tím mořím asi od 3 hodin, opravdu moc děkuji :) poslední
Swix 17.05.2012 17:21
Swix
daj sem screenshot apod (toho hexeditora)
MM.. 17.05.2012 16:19
MM..
BTW. co to je za format, mas to v subore .txt ci jak? Preco to chces robit pomocou php?
MM.. 17.05.2012 16:11
MM..

Přesněji netuším jaký je zdroj, dostal jsem tento text - zkoušel jsem přes notepad++ překonvertovat do všech možných kódování a nic (UTF-8, ANSI).

Výstup je přesně takový jaký je text...
Jen mě zaráží že ten poslední replace funguje... (ten znak se mi zobrazoval jen jako černý kosočtverec s otazníkem).

PS: Text má kolem 60 000 řádku, moc se mi nechte to ručně přepisovat...

U každého řádku je něco na způsob xxxxxxxx: xx xx xx xx xx xx xx xx | xx xx xx xx xx xx xx xx.

Chytřejší z toho nejsem, ale asi dvoubytové ne?

E: Řekl jsem že mám jen text, a ten chci ho vypsat na stránku....
V php to mám pro to, že tam nechci ty klikiháky - jen v html je to zobrazuje taky...

ok to je vsetko singlebyte. este to nascrolluj na nejake to &#244 alebo ktore ti nefungovalo, ci to je tiez singlebyte vsetko. Pravdepodobne ale je.
Jakym sposobom ten text nacitavas do premennej? Hod sem nejaky zaklad toho PHP kodu, pripadne aj cely

P.S. na vyhladanie toho &#244 pouzi Ctrl-F. A zaujimave je ze ci sa to v tom original subore vobec vyskytuje taka kombinacia.
resp nie &#244 ale nejake &#225 alebo co tam ma byt

Říkám, mám text ve kterém to je, originální soubor není - resp je ve formátu html a zdrojový kód obsahuje sekvenci á a další...

Toto mi to hodí, když otevřu ten php soubor v hexa, otevřu ještě ten původní v hexa a hodím sem screen

view.php

E: "Původní" html soubor je stejný (v hexa)

No a ved vidis ze tam neni á ale á tak logicky to nenajde á ked v tom subore á neni.
Bud si to budes parsovat po jednotlivych znakoch aby si odchytil vsetky mozne multi-escape sekvecnie, alebo proste skusaj zamienat cely á za to á ci co tam ma byt

Zpět do poradny Odpovědět na původní otázku Nahoru