| 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: 13 let
|
|||
0