Autor | Zpráva | ||
---|---|---|---|
unlucky Profil |
$text='neco neco /chci tohle/'; preg_match("~[/](.+?)[/]~", $text,$vyslovnost); if(!isset($vyslovnost)){ $vyslov='nema'; }else{ $vyslov=$vyslovnost[1]; $text=strstr($text, '/', true); } echo $text.$vyslov; Kdyz v textu nenajde vyslovnost, napise mi to upozorneni offset. Zkousel jsem podminky, jestli je prazdny retezec a empty, ale porad zobrazuje chybu. Vite jak to opravit? |
||
Virtus Profil |
#2 · Zasláno: 29. 3. 2013, 17:35:01
V tomhle kódu žádnou chybu nevidím, jedině snad aby to bylo striktní, tak si prvně nadefinovat proměnnou $vysledek
$text='neco neco /chci tohle/'; $vysledek = array(); preg_match( '~[/](.+?)[/]~', $text, $vysledek ); if( isset( $vysledek[1] ) ){ echo 'ok'; }else{ echo 'chyba'; } |
||
unlucky Profil |
#3 · Zasláno: 29. 3. 2013, 17:44:51
Notice: Undefined offset: 1 in C:\Program Files\EasyPHP-12.0\www\index.php on line 21 radek 21 je $vyslov=$vyslovnost[1]; ale toto nemuze byt, kdyz uz to proslo kontrolou? zkousel jsem array() a unset, porad stejne |
||
Tori Profil |
#4 · Zasláno: 29. 3. 2013, 18:44:48
unlucky:
preg_match vrací false, když nenajde požadované, takže se dá použít if (!preg_match(... . IMHO by stačilo i:
$text = 'slovo /vyslovnost/'; $tmp = explode('/', $text); echo 'Slovo: '.$tmp[0]; echo ', výslovnost: '. (isset($tmp[1]) ? $tmp[1] : 'nezadaná'); echo $text . (strpos($text, '/') === FALSE ? ' výslovnost není zadaná' : '');
|
||
Časová prodleva: 11 let
|
0