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

Problem sa funkcijom ucfirst i slovima šđžćč

[es] :: PHP :: Problem sa funkcijom ucfirst i slovima šđžćč

[ Pregleda: 2548 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

BLACK_SWORD

Član broj: 212173
Poruke: 171
*.team.ba.

Sajt: www.artwebdizajn.com


+3 Profil

icon Problem sa funkcijom ucfirst i slovima šđžćč17.02.2010. u 13:21 - pre 172 meseci
Pozdrav!

Napravio sam skriptu za registraciju korisnika, skripta sadrzi

korisnicko ime
ime
prezime
lozinka
email
spol
godina rodjenja


e sad ja sam stavio da kad korisnik upisuje ime ili prezime da ako upise prvo slovo malim da skripta pretvori prvo slovo u veliko a ostala malo:

Primjer

Code:
include "Postavke.php";

$_POST[ime] = ucfirst($_POST[ime]);
$_POST[ime] = ucfirst(strtolower($_POST[ime]));

$_POST[prezime] = ucfirst($_POST[prezime]);
$_POST[prezime] = ucfirst(strtolower($_POST[prezime]));

$imebaze="INSERT INTO korisnici (korisnickoime, ime, prezime, lozinka, email, spol, dan, mjesec, godina)

VALUES ('$_POST[korisnickoime]', '$_POST[ime]', '$_POST[prezime]', '$_POST[lozinka]', '$_POST[email]', '$_POST[spol]', '$_POST[dan]', '$_POST[mjesec]', '$_POST[godina]')";



e sad kad korisnik upise npr prezime pavloviĆ skripta ce upisati u mysql bazu PavloviĆ greška je što slovo šđžćč ne prepoznaje ako je veliko i ostat ce veliko, znali neko kako to da napravim,


i interesuje me dali se može uraditi npr. ako neko upiše prezime pavloviĆ-golijaNin da skripta pretvori u Pavlović-Golijanin i da upiše u mysql bazu.

Nadam se da ste me razumjeli. Hvala na pomoći
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-5.sezampro.rs.



+33 Profil

icon Re: Problem sa funkcijom ucfirst i slovima šđžćč17.02.2010. u 13:41 - pre 172 meseci
Probaj sa mb_strtolower. Funkcija strtolower ne može da radi kako treba kad naiđe na multibyte karaktere...
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.adsl.beotel.net.



+13 Profil

icon Re: Problem sa funkcijom ucfirst i slovima šđžćč17.02.2010. u 13:45 - pre 172 meseci
Koristi ovu f-ju: mb_strtolower i trebalo bi da bude ok.

Citat:

i interesuje me dali se može uraditi npr. ako neko upiše prezime pavloviĆ-golijaNin da skripta pretvori u Pavlović-Golijanin i da upiše u mysql bazu.


Moze :-) E sad, da li ima neki "simple way", pojma nemam... Probaj sa ovom f-jom: mb_convert_case

 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-6.sezampro.rs.



+33 Profil

icon Re: Problem sa funkcijom ucfirst i slovima šđžćč17.02.2010. u 14:03 - pre 172 meseci
Citat:
BLACK_SWORD: i interesuje me dali se može uraditi npr. ako neko upiše prezime pavloviĆ-golijaNin da skripta pretvori u Pavlović-Golijanin i da upiše u mysql bazu.

Možda ovako:
Code:
$prezime = preg_replace(array('#([\-\s])(\p{L}{1})#e', '#(^\p{Ll}{1})#e'), array("mb_strtoupper('\\2')","mb_strtoupper('\\1')"), mb_strtolower($prezime));

A može naravno i komplikovanije:
Code:
$niz = explode('-', $prezime);

foreach ($niz as &$p) {
    $p = ucfirst(mb_strtolower(trim($p)));
}

$prezime = implode('-', $niz);
 
Odgovor na temu

BLACK_SWORD

Član broj: 212173
Poruke: 171
*.team.ba.

Sajt: www.artwebdizajn.com


+3 Profil

icon Re: Problem sa funkcijom ucfirst i slovima šđžćč17.02.2010. u 17:28 - pre 172 meseci
neradi opet ako korisnik unese prezime "pavloviĆ" u bazu upiše "PavloviĆ" nece skripta da veliko Ć pretvori u malo
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-6.sezampro.rs.



+33 Profil

icon Re: Problem sa funkcijom ucfirst i slovima šđžćč17.02.2010. u 17:39 - pre 172 meseci
A jesi probao da provučeš taj neki string kroz mb_strtolower funkciju? Da bi koristio te mb_* funkcije, u tvojoj instalaciji PHP-a mora da bude omogućena "Multibyte String" ekstenzija. Ali verujem da si to isprobavao u lokalu, i da je ta ekstenzija omogućena, pa mi onda jedino pada napamet da probaš da proslediš i drugi argument toj istoj funkciji, koji će da je "obavesti" o encode-ingu, ovako:
Code:
mb_strtolower($prezime, "UTF-8");
 
Odgovor na temu

BLACK_SWORD

Član broj: 212173
Poruke: 171
*.team.ba.

Sajt: www.artwebdizajn.com


+3 Profil

icon Re: Problem sa funkcijom ucfirst i slovima šđžćč17.02.2010. u 17:55 - pre 172 meseci
probo sam neradi,

a dali može se napraviti da kad korisnik unosi prezime da nemože unijeti znakove /()"#!$%&?=*][§}{ i da nemože unijeti brojeve i odvajati riječi, već samo da upiše prezime i onda cu staviti

Code:

$_POST[prezime] = ucfirst($_POST[prezime]);
$_POST[prezime] = ucfirst(strtolower($_POST[prezime]));


pa ako bude piso prvo slovo malim da skripta pretvori u veliko i da upise u bazu, a ako bude piso razmake ili brojeve i znakove !"#)($(/&%($%# da mu se pojavi poruka da nemože unositi te znakove.
 
Odgovor na temu

[es] :: PHP :: Problem sa funkcijom ucfirst i slovima šđžćč

[ Pregleda: 2548 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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