• 18 odgovora
  • 5.598 pregleda
PHP zamjena latin znakova 13.01.2008. u 17:47 · pre 228 meseci #1
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
Potpis
Some people told me that I need help, some people can fuck off and go to hell.
Re: PHP zamjena latin znakova 13.01.2008. u 20:32 · pre 228 meseci #2
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;
Potpis
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
Re: PHP zamjena latin znakova 14.01.2008. u 11:35 · pre 228 meseci #3
Hvala na odgovoru koji sam već znao,
ali to ne radi.
Potpis
Some people told me that I need help, some people can fuck off and go to hell.
Re: PHP zamjena latin znakova 14.01.2008. u 11:42 · pre 228 meseci #4
probaj umesto č da stavis č ć - ć š - š ž - ž đ - Đ u $nashalatinica niz. mislim da sam dao dobre kodove.
Re: PHP zamjena latin znakova 14.01.2008. u 11:52 · pre 228 meseci #5
Ž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
Potpis
Some people told me that I need help, some people can fuck off and go to hell.
Re: PHP zamjena latin znakova 14.01.2008. u 19:11 · pre 228 meseci #7
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.

Re: PHP zamjena latin znakova 14.01.2008. u 22:44 · pre 228 meseci #8
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;
Potpis
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
Re: PHP zamjena latin znakova 15.01.2008. u 07:18 · pre 228 meseci #9
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"
Potpis
Some people told me that I need help, some people can fuck off and go to hell.
Re: PHP zamjena latin znakova 15.01.2008. u 08:26 · pre 228 meseci #10
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;

?>
Potpis
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
Re: PHP zamjena latin znakova 07.02.2008. u 00:06 · pre 227 meseci #11
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
Potpis
SasaKaranovic.com ~
YouTube ~
Twitter
Re: PHP zamjena latin znakova 07.02.2008. u 12:08 · pre 227 meseci #12
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');

Potpis
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
Re: PHP zamjena latin znakova 07.02.2008. u 22:37 · pre 227 meseci #13
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...
Potpis
SasaKaranovic.com ~
YouTube ~
Twitter
Re: PHP zamjena latin znakova 12.03.2008. u 21:55 · pre 226 meseci #14
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);

Re: PHP zamjena latin znakova 13.03.2008. u 12:08 · pre 226 meseci #15
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... :(
Potpis
SasaKaranovic.com ~
YouTube ~
Twitter
Re: PHP zamjena latin znakova 14.03.2008. u 08:51 · pre 226 meseci #16
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?
Potpis
Moj Veb Sajt HostCentar Blog
Aleksinac Južna Srbija TimeOut
Re: PHP zamjena latin znakova 14.03.2008. u 14:12 · pre 226 meseci #17
U cemu pises skriptu? Ako u Dreamweaveru pritisni CTRL+J i izaberi UTF-8 , a tamo stavi č ć ž š đ nemoj &#...
Re: PHP zamjena latin znakova 15.03.2008. u 14:52 · pre 226 meseci #18
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.
Potpis
SasaKaranovic.com ~
YouTube ~
Twitter
Re: PHP zamjena latin znakova 15.03.2008. u 17:39 · pre 226 meseci #19
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..
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme