[ TriLLi @ 13.01.2008. 17:47 ] @
Kako da u php-u neki string koji sadrži latin znakove kao čćžđ zamjenim za cczdj
ebe me to ima sat vremena, moze li pomoc
[ Nemanja Avramović @ 13.01.2008. 20:32 ] @
Prostim zamenjivanjem naših slova njihovim ekvivalentima bez "kvačica":

Code:
$stringx = 'Neki string sa našim slovima';

$nashalatinica = array('č','ć','š','ž','đ');
$latinica = array('c','c','s','z','dj');
$stringx = str_replace($nashalatinica,$latinica,$stringx);

echo $stringx;
[ TriLLi @ 14.01.2008. 11:35 ] @
Hvala na odgovoru koji sam već znao,
ali to ne radi.
[ kazil @ 14.01.2008. 11:42 ] @
probaj umesto č da stavis č ć - ć š - š ž - ž đ - Đ u $nashalatinica niz. mislim da sam dao dobre kodove.
[ TriLLi @ 14.01.2008. 11:52 ] @
Žao mi je opet, ista situacija, ne mogu da napravim to...
a treba mi za pravljenje url taga, npr iz nekog Naslova "Šta ja znam" da mi napravi "Sta-ja-znam" eto
[ 1r0nM4n @ 14.01.2008. 17:50 ] @
Citat:
TriLLi: Hvala na odgovoru koji sam već znao,
ali to ne radi.

Jesi li siguran da ne radi?
[ 357_97 @ 14.01.2008. 19:11 ] @
Evo regularnih izraza za zamenu slova koja si naveo.
Code:
$latRegExp = array(
   '/\x{010d}/u', '/\x{010c}/u',     /* č-Č */
   '/\x{0107}/u', '/\x{0106}/u',     /* ć-Ć */
   '/\x{0161}/u', '/\x{0160}/u'      /* š-Š */
   '/\x{017e}/u', '/\x{017d}/u',     /* ž-Ž */
   '/\x{0111}/u', '/\x{0110}/u'      /* đ-Đ */
);

ti samo treba da napravis niz koji koji ce sadrzati slova kojim treba da se zamene gore napisani reg. izrazi.

[ Nemanja Avramović @ 14.01.2008. 22:44 ] @
Citat:
TriLLi: Hvala na odgovoru koji sam već znao,
ali to ne radi.


http://www.avramovic.org/nashaslova.php

Code:
$stringx = 'Neki string sa našim slovima';

echo "originalni tekst: " . $stringx;
echo "<br /><br />";

$nashalatinica = array('c','c','š','ž','d');
$latinica = array('c','c','s','z','dj');
$stringx = str_replace($nashalatinica,$latinica,$stringx);

echo "obradjen tekst: " . $stringx;
[ TriLLi @ 15.01.2008. 07:18 ] @
Ovako da se razumijemo.
Koji god encoding stavim na site i pošaljem text preko preko POST-a
na ovoj strani dobijm text u kojem ne mogu da zamjenim znakove
ako stavim UTF-8 encoding pa stavim da trazi utf znakove
ne radi, ako stavim neki drugi i opet ista zajebancija...
Naveo sam da mi treba za kreiranje URL taga "Friendly URL"
[ Nemanja Avramović @ 15.01.2008. 08:26 ] @
http://www.avramovic.org/nashaslova2.php

Code:
<form action="#" method="post">
<input type="text" value="Neki string sa našim slovima" name="nashaslova" /><br />
<input type="submit" value="Submit" />
</form>

<?php

$stringx = $_POST['nashaslova'];

if (!$stringx) { die(); }

echo "originalni tekst: " . $stringx;
echo "<br /><br />";

$nashalatinica = array('č','ć','š','ž','đ');
$latinica = array('c','c','s','z','dj');
$stringx = str_replace($nashalatinica,$latinica,$stringx);

echo "obradjen tekst: " . $stringx;

?>
[ ColdKeyboard @ 07.02.2008. 00:06 ] @
Znaci u klasi imam funkciju

Code:

    function sredi_link($string) {
        $lat =     array('š', 'Š', 'đ', 'Đ', 'ž', 'Ž', 'ć', 'Ć', 'č', 'Č');
        $engl = array('s', 'S', 'dj', 'Dj', 'z', 'Z', 'c', 'C', 'c', 'C');
        
        
        //$string = str_replace($lat, $engl, $string);
                $string = str_replace('š', 's', $string);

        //$string = preg_replace('/[^a-z|A-Z|0-9|\ |\-]/', '', $string);     
        $string = str_replace(" ", "_", $string);
        
        return $string;
    }



String primjera radi cita se iz baze i izgleda kao "'Charlize Theron : Sviđa mi se Budimpešta, glavi grad Turske"

I kada pozove unutar funkcije za citanje podataka iz baze imam kod

Code:

$item['link'] = $this->sredi_link($item['naslov']);


Medjutim uvijek dobijem slovo đ i š umjesto dj i s, i ista je prica sa svim ostalim znakovima... Jel ima mozda neko rjesenje ?

p.s. Nemanja tvoj kod sam probao i ne pomaze... :S ne znam zasto ali jednostavno ne radi
[ Nemanja Avramović @ 07.02.2008. 12:08 ] @
Kao što se vidi na linku iz prethodne poruke: Moj kod radi

Proveri da li ti je PHP fajl (tj. svi php fajlovi, i klase i ta skripta i sve ostalo) sačuvan kao UTF-8, i naravno, proveri da li imaš ovo u head-u stranice:
Code:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


Takođe, ni ovo na početku PHP fajl(ov)a neće da smeta:
Code:
header('Content-Type: text/html; charset=utf-8');

[ ColdKeyboard @ 07.02.2008. 22:37 ] @
Imaju i Index.php i Index.tpl UTF-8 enkoding ali mislim da je problem sto ovu funkciju pozivam iz klase koja se inkluduje u index.php
ili takodje isti problem imam ako napravim Smarty.Modifier.Link pa u njemu stavim da radi replace...

Ali cudno je znaci isto kao da samo zaobidje taj kod, kao da je komentovan i to me izludjuje...

Znaci koristim Smarty Template Engine i probavam da uradim replace preko modifier, probao sam u klasi da pozivam klasu za ovo ali ne radi,
to sam zaboravio reci ali sumnjam da to sta mijenja...
[ virtual_croatia @ 12.03.2008. 21:55 ] @
Isti problem i kod mene i nakon analize ascii kodova nasao rjesenje. Posto meni trebaju samo mala slova ovo je rjesenje za mala slova. Za velika cete morati potraziti ascii kodove:

Code:
$foreign_letters = array(chr(232), chr(230), chr(154), chr(158), chr(240));
$english_letters = array("c", "c", "s", "z", "dj");
$name = str_replace($foreign_letters, $english_letters, $name);

[ ColdKeyboard @ 13.03.2008. 12:08 ] @
Ne znam zasto ni kako ali nijedan kod koji sam probao pa i ovi vec napisani na ovoj stranici ne mogu da mi pomognu. Jednostavno slova sa kvakicama nece da se zamjene sa slovima bez kvakica.

Ima li neko ideju kako da isprintam da vidim tacno kako funkcija dobija ta slova koja izvuce iz SQL baze pa da onda probam str_replace bas tog dijela sto sam dobio ?

Probao sam znaci da ih ukucam ovako kakva jesi ne radi, probao sam sa chr ne radi... :(
[ agvozden @ 14.03.2008. 08:51 ] @
Normalno, bitaj je encoding koji si koristio prilikom unosa teksta.
Ukoliko si koristio utf-8 onda patern treba da ti bude utf-8...

mozda je najbolje da "uhvatis" encoding teksta pa ukoliko imas tekst na vise encodinga sve lepo prevuces u utf-8

Ja sam to radio u vise navrata, a pomoglo mi je i u preslovljavanju sa cirilice na latinicu i obratno.

Znaci - za pocetak koji page encoding uopste koristis?
[ _CaRtMan_ @ 14.03.2008. 14:12 ] @
U cemu pises skriptu? Ako u Dreamweaveru pritisni CTRL+J i izaberi UTF-8 , a tamo stavi č ć ž š đ nemoj &#...
[ ColdKeyboard @ 15.03.2008. 14:52 ] @
Jooooj, stas popit ?

Hvala, ovo posljednje mi radi savrseno kada stavim UTF-8 ali u dreamweaver-u samo bez onih /č/ vec samo slovo unutar navodnika.
Mada nije mi jasno zasto DW pravi probleme sa ovim kada UTF-8 stavim napravi izmjene u dokumentu ali nisu vidljive ni u kodu niti u dizajnu :S

Bilo kako bilo ovo posljednje mi je pomoglo mnogo, sada rade svi od gore navedenih kodova.
[ _CaRtMan_ @ 15.03.2008. 17:39 ] @
Colu :P , da, treba samo slovo unutar navodnika č,ć,ž,đ,š ... I to je to. Tako možeš uraditi i npr:

Code:
echo "č ć ž đ š";

a da ti ispiše ako odeš CTRL+J pa UTF-8. Dok recimo bez toga ne bi moglo ispisati normalno..