т.е. я хочу сделать такую конструкцию PHP: $str = array('first', 'second', 'third'); if(in_string($string, $str)) echo 'ok'; так, чтобы если В строке Есть хоть Один элемент Массива - вернула 1, если нет ни одного совпадения - 0 может есть стандартные функции, о которых я не знаю? PS stristr($string, $needle) я знаю, но туда не засунешь массив. приходится писать PHP: if(strstr($str, $one) || strstr($str, $second) || ...)
нет, он будет искать в массиве элемент который равен строке а мне надо искать в строке подстроки (которых - целый массив)
ага, немного не так подумал. Стандартную функцию не знаю, может, и есть. Можно такую заюзать PHP: function in_string ($string, $find) { $flag = 0; foreach ($find as $elem) if (strpos ($string, $elem) !== false) $flag = 1; return $flag; }
так и я могу тогда уж PHP: function in_str($string, $substrs) { if(sizeof($substrs)) foreach($substrs as $substr) if(stristr($string, $substr)) return 1; return 0; } кто может сделать её ещё лаконичнее?
как то так PHP: function in_str($string, $sub) { str_replace($sub, '', $string, $c); if($c) { return 1; } else { return 0; } }
ну или рег экспами PHP: function in_str($string, $sub) { if(preg_match('/('.join('|', $sub).')/siU', $string, $m)) { return 1; } else { return 0; } }