Autor Zpráva
saman
Profil *
Zdravím.
Prosím o radu zkušenějších. Potřebuju aby jsem pomocí podmínky vyřadil tenhle tvar: ted_ne=
a povolil jen tvar: ted_ne=1,2 nebo ted_ne=proc

Jedná se mi ošetřšní adres,ale to asi psát nemusím proto by neměl trvat na znaku _

Poradí nebo raději napíše někdo tvar podmínky? Děkuju předem

if(ereg('^([0-9]{1,3}\.){3}[0-9]{1,3}$',$ur)){
      $uri[] = $ur;
}
Str4wberry
Profil
Úplně jasný mi dotaz není, ale nebylo by lepší použít parse_str a potom ověřovat hodnotu ted_ne? Nebo ten obsah už je v $ur? Potom by mělo stačit testovat, zda je hodnota rovna „1,2“ nebo „proc“.

Mimochodem, co to má dělat?
saman
Profil *
Má to odstraňovat přebitečné Get pro stránkování. Všechno už mám, ale chybí jen podmínkou prázdné pole odstranit.


Napíše mi někdo prosím správný tvar pro podmínku? Děkuju


Třeba mě prudí adresa: test.php?t1=2&t2=&t3=&t5=1
a proto se snažím docílit: test.php?t1=2&t5=1
saman
Profil *
Prosím, potřebuju jen podmínku pro test=neco asi to ereg neumí. Nikde na internetu nemůžu najít nic co by mě nakoplo


Jste tu fakt frajeři :-)
Já si to vyřeší jako vždycky sám :-)

Vůbec nechápu proč sem pořád lezu. Vždycky mi to tady stojí jen čas a nakonec si to vyřeším sám.


Jak jsem řekl :-) Mám to hotové a opět moc děkuju všem účastníkům :-))
jenikkozak
Profil
saman:
nakonec si to vyřeším sám
Jak?

Jste tu fakt frajeři :-)
Nemůžeme za to, že jsi lepší…
Nepleť si ale tuhle diskusi s chatem. Nemá cenu sem sypat dotazy, na které jsi schopen si do čtvrt hodiny odpovědět sám.
saman
Profil *
Dobře, tak schválně sem dám ještě poslední věc na kterou hledám řešení a jsem zvědavej jestli někdy bude zodpovězena. Sice by mi pomohlo, když by mi někdo napsal ted řešení, ale už teď vím, že si to vyřeším sám. Jde mi jen o to za jak dlouho a jestli mi někdo odpoví. Dodatek: rozhodně si nemyslím, že jsem chytřejší. Vím, že tady jsou borci co kouknou a ví. Já jedu pokus omyl.


$kontrola = "test=".$_GET["test"]; // $_GET["test"] je ve tvaru 33,12,100,1,4
if(eregi("^[\'+\\./0-9A-Z^_\`a-z{|}~\-]+=[[a-zA-Z0-9_\-][0-9]]{1,100}$",stripslashes(trim($kontrola))))
Ví někdo jak to vyřešit?


Jsem hotov a ted se s úsměvem budu dívat kdy někdo zareaguje bez prázdných slov :-)
engien
Profil *
@saman: Dobrý den, co na tom potřebujete vyřešit?


Tak, kde jste? Nemám čas čekat a chci to řešit hned teď.
saman
Profil *
Zadání je jasné i mojí maličkosti. Nechci se opakovat a tak budu citovat :-))

engien:
kdy někdo zareaguje bez prázdných slov
jenikkozak
Profil
saman:
Jde mi jen o to za jak dlouho a jestli mi někdo odpoví.
Nechápu, co se tu snažíš si dokazovat. Měl by ses zamyslet nad tím, co od druhých očekáváš a co jim nabízíš.
Tady jsem ti odpověděl za pět minut, což není nijak špatný čas na to, že šlo o pracovní den a o dobu, kdy je většina slušných lidí v práci. Za poslední dobu jsi sem pod různými přezdívkami nasypal zbytečných dotazů až hanba, ale sám jsi neporadil nikomu. Ptal jsem se tě [#5], jak jsi problém vyřešil (odkazem na doporučení jsem zdůvodnil, proč se na to ptám). Odpověděl jsi mi? Ne.
Prosím, nezatěžuj nás dotazy, které jsi schopen vyřešit sám pár sekund po překonání vlastní lenosti.
engien
Profil *
@saman: Omlouvám se za nechápavost, ale opravdu netuším, co s tím chcete dělat. Můžete to zadání upřesnit?
saman
Profil *
jenikkozak:
kdo poradil me?
peta
Profil
[#6] saman Jaky je dotaz? Asi spatne formulovana otazka, spis zadna. Odpoved zni tedy nemas zac. Vymysleni mi trvalo asi 10s, to by mohlo byt rychlejsi nez tve napsani reseni :) Kazdpopadne odpoved fora byva obvykle 2 dny, takze obvykle to byva moje az stredne posledni moznost po nekolika minuto-hodinovem googlovani.
[#1] saman Take nechapu, ceho chces docilit. je to jen o malinko lepe formulovane nez #6.
Jaky je zdroj? Co z nej potrebujes smazat? Jaky ma byt vysledek?

ereg - deprecated, pouziva se preg
http://cz1.php.net/preg_replace
http://cz1.php.net/manual/en/function.preg-match.php
http://cz1.php.net/manual/en/function.preg-match-all.php

Kdyz vemu priklad ze #6...
$str = "test=33,12,100,1,4"; // get nas nezajima, dulezity je cely string predtim
if(eregi("^[\'+\\./0-9A-Z^_\`a-z{|}~\-]+=[[a-zA-Z0-9_\-][0-9]]{1,100}$",stripslashes(trim($str))))
// a string potom, tu nemas zadny
Nevim, jaky ma smysl eregi, kdyz tam pak napises a-zA-Z, coz je totez jako a-z nebo A-z s prikazem eregi :)

Třeba mě prudí adresa: test.php?t1=2&t2=&t3=&t5=1
a proto se snažím docílit: test.php?t1=2&t5=1

Jestli to spravne chapu, tak $str postupne nabyva hodnot pole
t1=2
t2=
t3=
t5=1
A ty chces odfiltrovat vsechny, ktere nemaji data, cili ma zustat pole
t1=2
t5=1

Pole se da poslat tez jako http://stackoverflow.com/questions/1833330/how-to-get-php-get-array
index.php?id[]=1&id[]=2&id[]=3&name=john
index.php?id=1,2,3&name=john

http://cz1.php.net/manual/en/function.preg-match.php
Example #3 Using named subpattern
$str = "t1=2&t2=&t3=&t5=1";
$patt = '~\w+[\w\d]*\=[\w\d]+~';
preg_match_all($patt, $str, $matches);
print_r($matches);
PostCC
Profil
Já obecně moc nechápu ten požadavek, tak jen zkusím nasměrovat jak bych to asi řešil sám - k odstranění prázdných hodnot nabízí PHP funkci:

Array_Filter();

S jedním parametrem - v tomto případě:

$_GET = Array_Filter($_GET);

odstraní z pole proměnných metody GET všechny položky, které nemají hodnotu, resp. jsou rovny FALSE, viz:

http://www.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting

Pokud toto řešení nevyhovuje, lze pochopitelně použít vlastní funkci (druhý parametr), která zajistí návrat hodnot do výsledného pole dle potřeby.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: