Autor Zpráva
Mufna
Profil
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 *
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
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 *
aha, ja jen koukal na zdrojak, na zjistieni pouzij if(strpos('/',$kde) !== false) echo 'je tam'
Mufna
Profil
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'

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:

0