» »

šumniki pretvarjanje z php

šumniki pretvarjanje z php

crystal ::

LP
zanima me če se da ko kličem iz baze spremenljivke, ki vsebujejo šumnike, pretvorim v navadne recimo
Šuštar v sustar
Žaba v zaba etc.. in če se da naredit kako množično preverjanje al je potrebno vsako besedo posebej pregledati če ima vseh šest šumnikov ( z velikimi in malimi črkami)

hvala

Gost ::

Take funkcije mislim, da v php-ju ni. Potrebno bo vsakega posebej in velike ter male posebej.

crystal ::

ja sej me zanima kako vsako posebej da skrati pogleda za vse šumnike

Wasted ::

Ke?
$str = str_replace(array('Š', 'č', 'ž'), array('S', 'c', 'z'), $str);


ostale šumnike pa si sam dodaj noter :D
When I'm done there will be nothing left of you...

Gost ::

Če imaš problem s šumniki boš imel lahko problem tudi z vsemi ostalimi znaki izven osnovnega nabora: ß, ö, ü, ä ...

Meni str_replace ne deluje s šumniki. Morda kaj takega:
// trim and lowercase
$text = mb_strtolower(trim($text), 'UTF-8');		
// čšćđž -> cscdz
$patterns = array("č", "š", "ć", "đ", "ž");
$replacements = array("c", "s", "c", "d", "z");
foreach($patterns as $key=>$pattern) {
   $text = mb_ereg_replace($pattern, $replacements[$key], $text);
}

crystal ::

tenx stari ti si car!!

techfreak :) ::

Gost je izjavil:

Meni str_replace ne deluje s šumniki.


<?php
header ('Content-type: text/html; charset=utf-8');
$str="ačžčsdfsdsdčščščžžščdsfž";
print $str ."<br />";
$str = str_replace(array('Š', 'č', 'ž'), array('S', 'c', 'z'), $str);
print $str;
?>


Izpis:
ačžčsdfsdsdčščščžžščdsfž
aczcsdfsdsdcšcšczzšcdsfz


Zakaj ne bi delovalo?

Zgodovina sprememb…

crystal ::

ačžčsdfsdsdčščščžžščdsfž
aczcsdfsdsdcšcšczzšcdsfz

v drugi vrstici imaš pe vedno "Š" je vrjetno zato ne deluje

Ice-Heki ::

crystal:
V drugi vrstici ima Šje zato, ker so v prvotnem nizu mali š-ji, on pa je s str_replace zamenjal veliki Š v mali s. Nikjer ni zamenjal malega š-ja z malim s, zato so mali š-ji ostali nespremenjeni.

techfreak :) ::

<?php
header ('Content-type: text/html; charset=utf-8');
$str="ŠČŠščšžčžšžšžčŽČŠŽČŠŽčŠČžščšŽŠČŠŽČŠŽčžćžšžčžčšžčšžČŠŽČŠŽČŠčžščšžčžščšžčžščšžčšžčšžčžčžščšžčšŠČŽČŠČŠŽŽŠ";
print $str ."<br />";
$str = str_replace(array('č', 'ž', 'š', 'Č', 'Ž', 'Š'), array('c', 'z', 's', 'C', 'Z', 'S'), $str);
print $str;
?>


ŠČŠščšžčžšžšžčŽČŠŽČŠŽčŠČžščšŽŠČŠŽČŠŽčžžšžčžčšžčšžČŠŽČŠŽČŠčžščšžčžščšžčžščšžčšžčšžčžčžščšžčšŠČŽČŠČŠŽŽŠ
SCSscszczszszcZCSZCSZcSCzscsZSCSZCSZczzszczcszcszCSZCSZCSczscszczscszczscszcszcszczczscszcsSCZCSCSZZS

Lahko pa dodaš še ostale znake, ki ti delajo težave.

Zgodovina sprememb…

Gandalfar ::

Kaj je pa s tem narobe: http://stackoverflow.com/questions/1582...

da morate lastne regular expressione izumljat? :)

crystal ::

sori men to ne dela dam Čžš mi pretvori v ccc

techfreak :) ::

crystal je izjavil:

sori men to ne dela dam Čžš mi pretvori v ccc

Bi lahko bil bolj natančen, katera metoda ti ne deluje?

crystal ::

oprosti tvoja metoda je super in mi bo prišla zelo zelo prav :D



gandalfalova metoda je zanič :D

Wasted ::

Tista z iconv je vredu, edino mislim, da ne podpira vseh znakov, ć ali neki podobnega ni podprt.
When I'm done there will be nothing left of you...

techfreak :) ::

Wasted je izjavil:

Tista z iconv je vredu, edino mislim, da ne podpira vseh znakov, ć ali neki podobnega ni podprt.

Prav imaš. ć spremeni v 'c

čžš in tudi đ pa normalno spremeni.

<?php
setlocale(LC_ALL, 'en_US.UTF8');
$tekst="sććććfčsdfćdsfopšžfšlfšđžfldšsžćđđščžčž";

echo iconv("utf-8","ascii//TRANSLIT",$tekst);
?>


Izpis:
s'c'c'c'cfcsdf'cdsfopszfslfsdzfldssz'cddsczcz

Wasted ::

Ja točno, pri Đ sem jaz opazil, sicer pa lahko dodaš še str_replace za ti dve črki oziroma štiri če imaš še velike. Jaz pa mislim, da imam v mojih sistemih vse s str_replace, ker ko recimo rabiš kakšno takšno funkcijo še za angleški jezik moraš znova paziti na ' ki jih dobiš iz baze kot ' pa ti tole naredi celo zmešnjavo potem :) .
When I'm done there will be nothing left of you...

Gost ::

techfreak,
aha sedaj mi deluje str_replace, ki je potreboval še definiran header. Nekam nadležno, da moraš to definirati.

Tole z iconv je pa najboljša implementacija se mi zdi!

Zgodovina sprememb…

  • spremenil: Gost ()

techfreak :) ::

header ni potrebno definirati, uporabljam ga zaradi tega, ker sem želel pri prvem print-u izpisati v utf-8. No pa saj to je tako logično, da se mora header definirati, nekateri to naredijo v PHPju drugi pa pri spletnem strežniku.

Drugače je pa z iconv nekje 2,5x hitrejše kot pa s str_replace.

MrBrdo ::

<?php
setlocale(LC_ALL, 'en_US.utf8');
$tekst="sććććfčsdfćdsfopšžfšlfšđžfldšsžćđđščžčž";
$s = iconv("utf-8","ascii//TRANSLIT",$tekst);

ob_start();
for ($i=0; $i<strlen($s); $i++) if (($c = $s[$i]) != '\'') echo $c;
$s = ob_get_contents();
ob_end_clean();

echo $s;
?>

Meni sicer đ-je spremeni v vprašaje, medtem ko mi pri ćjih ne da ' spredaj...
Pomoje je še najbol zanesljivo kar z str_replace :)
MrBrdo

Zgodovina sprememb…

  • spremenilo: MrBrdo ()

FrEaKmAn ::

priporočam, da si pogledaš metodo unaccent na http://github.com/doctrine/doctrine1/bl... - stvar je stestirana in deluje


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[php] encoding niza

Oddelek: Izdelava spletišč
173659 (1574) BivšiUser2
»

[PHP]Zamenjava šumnikov z html kodami

Oddelek: Programiranje
153911 (2189) mikesr
»

[php]$_POST iz šumnikov v nešumnike

Oddelek: Izdelava spletišč
71482 (1394) Gost
»

Seškoti...PHP ali MySql

Oddelek: Izdelava spletišč
51201 (1109) rkasteli
»

MySQL in czs

Oddelek: Izdelava spletišč
423501 (2591) krho

Več podobnih tem