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

Parsiranje varijable po odredjenom kriterijumu (reg_exp)

[es] :: PHP :: Parsiranje varijable po odredjenom kriterijumu (reg_exp)

[ Pregleda: 2535 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

NenadS
Nenad Strainovic
Beograd

Član broj: 857
Poruke: 910
195.252.72.*

Sajt: www.strainovic.com


+7 Profil

icon Parsiranje varijable po odredjenom kriterijumu (reg_exp)19.06.2007. u 16:18 - pre 204 meseci
Imam problem da napravim funkciju koja ce da radi ono sto pise u naslovu ove teme... a to je da parsira varijablu po odredjenim kriterijumima.

Prvo $var moze da sadrzi sledece karaktere: 0-9 a-z A-Z (space) - + . , : " ' $ & ! ?

Ako sadrzi neki karakter van definisanih onda funkcija treba da ga obrise... i to sve nije problem da nije ovoga...

Na pocetku $var ne smeju da se nalaze karakteri osim 0-9 a-z A-Z a na kraju $var ne sme da ima (space) - + , : " ' & tako da ako se neki od njih nadje na mestu gde ne bi smeo da bude, funkcija treba da ga obrise... i jos jedna stvar...

Odredjeni karakteri smeju da se koriste samo odredjen broj puta... recimo ! samo jednom, + isto jednom, zarez dva-tri puta, . jednom itd...

Ima li neko ideju kako ovo moze da se napise?

Hvala

[Ovu poruku je menjao NenadS dana 19.06.2007. u 18:21 GMT+1]

[Ovu poruku je menjao NenadS dana 19.06.2007. u 18:22 GMT+1]
Pozdrav, NenadS!
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
77.46.194.*



+35 Profil

icon Re: Parsiranje varijable po odredjenom kriterijumu (reg_exp)19.06.2007. u 17:37 - pre 204 meseci
Evo jedna, ne bas sjajna ideja, ali izgleda da radi pos'o:

Code:

$str="%%$5----++??&+$5-,,,$'+++";
function parse($varijabla){
$patern="[^0-9a-zA-Z ?:\"'&+,$!.-]";
if(eregi($patern,$varijabla,$match)){
$varijabla=str_replace($match,"",$varijabla);
}
if(eregi("^[^0-9A-Z]",$varijabla,$match)){
$varijabla=str_replace($match,"",$varijabla);

}
if(eregi("[ +,:\"'&-]+$",$varijabla,$match)){
$varijabla=str_replace($match,"",$varijabla);
}
$limit=array(1,1,3,1); //prosiri listu
$chars=array("!","+",",","."); //takodjer

for($i=0;$i<count($chars);$i++){
if(substr_count($varijabla,$chars[$i])>$limit[$i]){
echo "LIMIT!";//ili vec uradi sta zelis...
}
}
echo $varijabla;
}

parse($str);

Hm...zapravo i ne radi bas u potpunosti kako bi trebalo...(neki znaci '$',&'... zezaju na nekim pozicijama)
Evo sad sam nesto sredio...i malko testirao...izgleda da radi, nisam siguran
Sigurno postoje mnogo elegantnija resenja, pa ce se neko vec verovatno javiti sa necim boljim...





[Ovu poruku je menjao kelja dana 19.06.2007. u 19:12 GMT+1]
 
Odgovor na temu

NenadS
Nenad Strainovic
Beograd

Član broj: 857
Poruke: 910
195.252.72.*

Sajt: www.strainovic.com


+7 Profil

icon Re: Parsiranje varijable po odredjenom kriterijumu (reg_exp)19.06.2007. u 19:08 - pre 204 meseci
Hvala ti, dao si mi ideju za neke stvari tako da sam uspeo da napravim sledece:

Code:
$username = "  12$5--F3ff 4f?gS--++!!!!!!&&&&  !!!??&+$5-,,,$'+++,";

function format_username($username)
{
    $limit = array(1, 1, 3, 1, 1, 1);
    $chars = array('!','+',',','.','?','&');

    for ($i = 0; $i < count($chars); $i++)
    {
        if (substr_count($username, $chars[$i]) > $limit[$i])
        {
            $username = preg_replace('/[' . $chars[$i] . ']+/', '' . $chars[$i] . '', $username);
            echo $chars[$i] . '<br />';
        }
    }
    
    $username = preg_replace('/^[\s\-\+\.,:"\'\$&!\?]+/', '', trim($username));
    $username = preg_replace('/[\s\-\+,:"\'&]+$/', '', trim($username));
    $username = preg_replace('#\s+#', ' ', trim($username));

    if (preg_match('/^[0-9A-Za-z\s(\s|\-|\+|\.|,|:|"|\'|\$|&|!|\?)]+$/', $username))
    {
        echo 'True<br />' . $username;
    }
    else
    {
        echo 'False<br />' . $username;
    }
}

format_username($username);


Sad ne znam koliko je to sve ispravno ali znam sta ne radi...

U varijabli imam na 2 mesta po nekoliko uzvicnika... i kroz for petlju oni se obrisu ali tako da na oba mesta ostane po jedan... a to nije dobro... treba samo jedan da ostane na kraju...

Imas li neku ideju za to?

Poz i hvala jos jednom
Pozdrav, NenadS!
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
77.46.228.*



+35 Profil

icon Re: Parsiranje varijable po odredjenom kriterijumu (reg_exp)20.06.2007. u 12:51 - pre 204 meseci
Hm...
lep zadatak :)
Pretpostavljam da je bitna pozicija karaktera koji ostaje.
Npr, ako se uzvicnik pojavljuje tri puta , a treba samo jednom , uzvicnik ostaje na mestu na kom se PRVI put pojavljuje, a brise se sa preostale dve pozicije?
Ili bi trebalo drugacije da radi?
 
Odgovor na temu

NenadS
Nenad Strainovic
Beograd

Član broj: 857
Poruke: 910
195.252.72.*

Sajt: www.strainovic.com


+7 Profil

icon Re: Parsiranje varijable po odredjenom kriterijumu (reg_exp)20.06.2007. u 13:08 - pre 204 meseci
Jep bas tako, na prvom mestu na kome se nadje ostaje, a sve ostalo se uklanja... to je deo koji bi mozda i mogao da se odradi, a da ne usporava... a postoji i treci deo koji i ne planiram.. a to je provera gde se koji znak nalazi u samoj poruci ili naslovu... recimo ne sme ., ili :. itd... samo sto je to previse komplikovano i previse kombinacija postoji da bih i to pokusavao... ovo je sasvim dovoljno samo ne znam da li je ta funkcija tj. reg_exp pravilno napisan...
Pozdrav, NenadS!
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
77.46.228.*



+35 Profil

icon Re: Parsiranje varijable po odredjenom kriterijumu (reg_exp)20.06.2007. u 19:47 - pre 204 meseci
Evo resenja:

Code:

$str='%%$5----.!!++?!!?&.+$5-bb,,,,$5gg+++';
function parse($varijabla){
$patern="[^0-9a-zA-Z ?:\"'&+,!.-]";
if(eregi($patern,$varijabla,$match)){
$varijabla=str_replace($match,"",$varijabla);
}
if(eregi("^[^0-9A-Z]",$varijabla,$match)){
$varijabla=str_replace($match,"",$varijabla);

}
if(eregi("[ +,:\"'&-]+$",$varijabla,$match)){
$varijabla=str_replace($match,"",$varijabla);
}
$limit=array(1,1,3,1); //prosiri listu
$chars=array("!","+",",","."); //takodjer

$broj=array(0,0,0,0);

for($j=0;$j<count($chars);$j++){
for ($i=0;$i<strlen($varijabla);$i++){

if($varijabla[$i]==$chars[$j]){
$broj[$j]++;
if($broj[$j]>$limit[$j]){
$varijabla[$i]="";

}
}
}
}
echo $varijabla;

}

parse($str);


Ne znam sta podrazumevas pod pravilnim pisanjem, ali ako radi - to je to :)
Pozdrav!
 
Odgovor na temu

NenadS
Nenad Strainovic
Beograd

Član broj: 857
Poruke: 910
195.252.72.*

Sajt: www.strainovic.com


+7 Profil

icon Re: Parsiranje varijable po odredjenom kriterijumu (reg_exp)20.06.2007. u 22:38 - pre 204 meseci
Hvala ti, to cemi svakako biti od koristi :)

Poz i sve najbolje
Pozdrav, NenadS!
 
Odgovor na temu

sale83
Australia
Sydney

Član broj: 41625
Poruke: 729
*.ispone.net.au.



+30 Profil

icon Re: Parsiranje varijable po odredjenom kriterijumu (reg_exp)21.06.2007. u 12:34 - pre 204 meseci
Pitanje:
Jel tebi ta funkcija treba bas za USERNAME ????
Ako jeste onda ja ne vidim razlog za toliko komplikovanje oko obicnog username.

1) Ne vidim gde mozes iskoristiti tu funkciju i da bude od koristi.
2) Pa daj je password ne treba toliko da toliko komplikujes sa silnim znakovima i ogranicenjima raznih karaktera koji ce koliko puta da se pojavljuje u stringu.

Ako je sve to oko usernema onda si mogao sda izaberes malo bolju i jednostavniju logiku nego doticnu koju si izabrao.
Izvini ali Ja ne vidim razlog za tolikim komplikovanjem oko istog.

Sve u svemu mislim da postoji mnogo bolja i jednostavnija logika za to sto ti treba od logike koju si izabrao.

PS
OK ako je to SKOLSKI ZADATAK-> dobro dodje za vezbanje dok u svakom drugom slucaju doticni kod nema nikakvu vrednu primenu tj nije vredan.


Poz
sale

Sto mozes danas ne ostavljaj za sutra!
 
Odgovor na temu

NenadS
Nenad Strainovic
Beograd

Član broj: 857
Poruke: 910
195.252.72.*

Sajt: www.strainovic.com


+7 Profil

icon Re: Parsiranje varijable po odredjenom kriterijumu (reg_exp)21.06.2007. u 12:57 - pre 204 meseci
Ne treba mi za username... to cu odraditi jednostavnije, ova funkcija mi treba za title i description, pa ne bih zeleo da se nego glupira i pise sve i svasta... a opet sa druge strane hocu da mu omogucim da moze da iskoristi odredjene karaktere kako bi taj naslov i opis 'lepo' izgledao :)

Mozda moze i jednostavnije ali ja trenutno ne znam drugi nacin da to uradim :(
Pozdrav, NenadS!
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
77.46.179.*



+35 Profil

icon Re: Parsiranje varijable po odredjenom kriterijumu (reg_exp)21.06.2007. u 13:33 - pre 204 meseci
He, a ja sam bio ubedjen da je u pitanju zadatak. :) Bas je vuklo na to.
A ako nije, ako ti treba za neki konkretan posao, onda mislim da ti, u stvari, i ne treba. :)
Ako su stvarno u pitanju title i description, ne bih se toliko zamarao oko toga (lepo zabrani/dozvoli odredjene karaktere,odradi strip tags i 'escape-uj' varijable, i sta ces vise...)
 
Odgovor na temu

NenadS
Nenad Strainovic
Beograd

Član broj: 857
Poruke: 910
195.252.72.*

Sajt: www.strainovic.com


+7 Profil

icon Re: Parsiranje varijable po odredjenom kriterijumu (reg_exp)21.06.2007. u 14:18 - pre 204 meseci
Stvarno su u pitanju samo title i description ali ja ne znam kako bi to moglo drugacije i eventualno bolje da se odradi... a da bar deo ovih uslova ispuni...

U principu sve to moze i bez ovoga ali bih onda morao ja rucno da prepravljam te greske da bi to izgledalo 'normalno'... ako neko zna neko prostije resenje, a da pritom i radi posao, voleo bih da to vidim :)

Poz
Pozdrav, NenadS!
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
77.46.179.*



+35 Profil

icon Re: Parsiranje varijable po odredjenom kriterijumu (reg_exp)21.06.2007. u 15:55 - pre 204 meseci
Ma ok, kod koji sam ti dao radi, samo zelim da kazem da ja nikad ne bih postavljao te(i takve) uslove kad su u pitanju title i description.(A mislim da niko, nigde i nikad i nije postavio takve uslove za 2 polja forme)
Ali, ako tebi bas TO treba, pa koristi ono sto imas, a onda je to i "vredna primena", a i ja bih voleo da vidim resenje krace za nekoliko linija i bolje, sveoubuhvatnije, itd...itd...
 
Odgovor na temu

NenadS
Nenad Strainovic
Beograd

Član broj: 857
Poruke: 910
195.252.72.*

Sajt: www.strainovic.com


+7 Profil

icon Re: Parsiranje varijable po odredjenom kriterijumu (reg_exp)21.06.2007. u 17:24 - pre 204 meseci
Ebiga, sta da radim kad hocu tako... sto vise stvari automatizujem, manje cu posla imati kasnije oko istih :)

Zasto bih ja recimo editovao svaki naslov ili opis i ispravljao 'gluposti' kada veci deo toga moze da odradi ova funkcija :)

Hvala jos jednom
Pozdrav, NenadS!
 
Odgovor na temu

[es] :: PHP :: Parsiranje varijable po odredjenom kriterijumu (reg_exp)

[ Pregleda: 2535 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

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