Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Latinica u ćirilicu iz MySql baze

[es] :: PHP :: Latinica u ćirilicu iz MySql baze

[ Pregleda: 4939 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Kusur
Grafički dizajner
Beograd

Član broj: 2485
Poruke: 208
213.240.30.*



Profil

icon Latinica u ćirilicu iz MySql baze02.11.2004. u 13:30 - pre 214 meseci
Pozdrav svima
Pretražio sam ovaj forum, pročito sam poruke sa sličnim problemom,
pronašao sam funkciju za konveziju latinice u ćirilicu, tražio sam po PHP "manuelu",
isprobao sam desetak komandi ali nisam uspeo da rešim problem.

Molim vas ako neko ima savet ili rešenje da mi pomogne.

PHP, MySql

Latinični tekst unosim u bazu preko forme iz "Explorera" (strana je 1250 ili utf-8) tj. preko html editora. Tekst formatiram pomoću stilova, tako da uneti tekst izgleda ovako:

Code:
<P><FONT class=tekst_prva>Ovo je prvi pasus</FONT></P>
<P><FONT class=tekst_prva>Ovo je drugi pasus</FONT></P>


Tekst iz baze prikazujem na php strani ovako:
Code:
<?php echo $tekst; ?>
a strana je utf-8 i sve je uredu. Kada želim da isti tekst prikažem čiriličnim pismom pozivam funkciju koju sam "skinuo" na ovom forumu:

Code:
<?php
function lat2cyr($n) {
$n=str_replace("a", "&#1072;", $n);
$n= str_replace("b", "&#1073;", $n);
$n=str_replace("c", "&#1094;", $n);
return $n;
} ?>]
itd. za sva slova, velika i mala


i tekst prikazujem ovako:
Code:
<?php echo lat2cyr($tekst); ?>


E tada mi funkcija konvertuje i tagove pa dobijem ćirlićne tagove koje se vide na strani između teksta. Kako da sa upotrebom ove funkcije konvertujem samo tekst a ne tagove ali da mi stilovi ostanu.

Unapred hvala
Kusur
 
Odgovor na temu

bzero
dev null
europe

Član broj: 5907
Poruke: 371
195.252.85.*

Jabber: bzero@elitesecurity.org
Sajt: www.google.com/search?q=b..


Profil

icon Re: Latinica u ćirilicu iz MySql baze02.11.2004. u 15:19 - pre 214 meseci
Ukoliko je formatirani tekst uvek u formatu koji si naveo, mozes da uradis nesto ovako:
Code:

print preg_replace("/(>)([^<]+)(<)/e", "'\\1'.lat2cyr('\\2').'\\3'", $tekst);


Ovo ce jednostavno da konvertuje samo ono sto se nalazi izmedju tagova (ustvari > i <).
Medjutim ovo nece raditi ukoliko imas neki tekst pre prvog otvorenog i/ili zadnjeg zatvorenog html taga ili ako uopste nemas tagove. Ovo ispod je malo vise posla, ali bi trebalo da radi i u ovom slucaju:
Code:

$chunks = preg_split('/<[^>]+>/', $tekst, -1, PREG_SPLIT_NO_EMPTY);
$patterns = array_map("add_regex", $chunks);
$replacement = "lat2cyr('\\1')";

print preg_replace($patterns, $replacement, $tekst);

function add_regex($str)
{
    return '/(' . preg_quote($str, '/') . ')/e';
}

Never trust an operating system you don't have sources for.
 
Odgovor na temu

Kusur
Grafički dizajner
Beograd

Član broj: 2485
Poruke: 208
*.229.EUnet.yu.



Profil

icon Re: Latinica u ćirilicu iz MySql baze02.11.2004. u 21:35 - pre 214 meseci
Hvala!

Sad je sve kako treba, oba načina "rade".

Koji način da upotrebim - ne mogu da se odlučim?

Da li imaš predlog kako da rešim rimske brojeve i engleske reči ako budu u tekstu, np. IV V ili Windows itd.
Kusur
 
Odgovor na temu

[es] :: PHP :: Latinica u ćirilicu iz MySql baze

[ Pregleda: 4939 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.