Autor | Zpráva | ||
---|---|---|---|
Mufna Profil |
#1 · Zasláno: 6. 7. 2010, 18:22:27 · Upravil/a: Mufna
Zdravím Vás. Jak mám zapsat pattern v mojí funkci tak, aby mi to neházelo chyby
1) Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash 2) Warning: preg_match() [function.preg-match]: No ending delimiter '/' found function strip_dom ($val) { if (preg_match('\/',$val)) { // takto to vyhodí chybu 1) if (preg_match('/',$val)) { // takto to vyhodí chybu 2) $v = explode('/', $val); return trim($v[1]); } else { return $val; } } V té funkci je pak samozřejmě pouze jeden z těch prvních dvou okomentovaných řádků. Dal jsem to takto dohromady jako ukázku (aby bylo vidět, co mi hází chyby) Obecně mi v té funkci jde o to zjistit, zda nějaký řetezec libovolných znaků obsahuje znak lomítko, podle toho pak funkce vrátí různé hodnoty |
||
aknerats Profil * |
#2 · Zasláno: 6. 7. 2010, 18:26:09
kasli na lomitka, uvozovaci muze bejt defakto cokoliv treba
preg_match(@[a-z]@,$kde) |
||
aknerats Profil * |
Nicmene nechapu, co delas... pokud to chces explodnout, explodni to bez regexpu, kdyz tam lomitko neni, vrati pole s celym stringem. Pokud ho chces oriznut, dej trim ('/') a pokud tma neni, tak se orizne, pokud chces uriznout cokoliv za lomitekme, vem substr s strpos, nebo teda preg_replace('@^(.*?)/(.*)$@',$1,$kde), delas to imho zbytecne slozite ;)
Moderátor Majkl578: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
|
||
Majkl578 Profil |
#4 · Zasláno: 6. 7. 2010, 18:36:02 · Upravil/a: Majkl578
Mufna:
Vyber si nějaký delimiter (ohraničuje výraz) a ten použij. Pokud si vybereš /, musíš ho uvnitř escapovat pomocí \. [#2] aknerats: „kasli na lomitka, uvozovaci muze bejt defakto cokoliv treba“ To pozor, nemůže. Je stanoveno, že to nesmí být písmeno, číslo, zpětné lomítko a bílý znak. Často se používá lomítko (/), nejspíš proto, že je kompatibilní s reguláry Javascriptu. Osobně používám nejčastěji ~. [#3] aknerats: Co to má být? preg_split by bylo lepší než to nahrazování, ne? |
||
aknerats Profil * |
#5 · Zasláno: 6. 7. 2010, 18:36:03
aha, ja jen koukal na zdrojak, na zjistieni pouzij if(strpos('/',$kde) !== false) echo 'je tam'
|
||
Mufna Profil |
#6 · Zasláno: 6. 7. 2010, 20:54:07
aknerats
dík za tu poslední radu, hodila se mi ... ale každopádně si mě i zmátl, protože to má být obráceně, tedy if(strpos($kde,'/') !== false) echo 'je tam' |
||
Časová prodleva: 14 let
|
0