Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
можно ли искать в строке подстроки массивом? |

26.10.2009, 19:35
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме: 2209675
Репутация:
537
|
|
можно ли искать в строке подстроки массивом?
т.е. я хочу сделать такую конструкцию
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) || ...)
|
|
|

26.10.2009, 19:48
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
http://ru.php.net/in_array
|
|
|

26.10.2009, 20:00
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме: 2209675
Репутация:
537
|
|
нет, он будет искать в массиве элемент который равен строке
а мне надо искать в строке подстроки (которых - целый массив)
|
|
|

26.10.2009, 20:11
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
ага, немного не так подумал. Стандартную функцию не знаю, может, и есть. Можно такую заюзать
PHP код:
function in_string ($string, $find) {
$flag = 0;
foreach ($find as $elem)
if (strpos ($string, $elem) !== false)
$flag = 1;
return $flag;
}
|
|
|

26.10.2009, 21:45
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме: 2209675
Репутация:
537
|
|
так и я могу 
тогда уж
PHP код:
function in_str($string, $substrs)
{
if(sizeof($substrs))
foreach($substrs as $substr)
if(stristr($string, $substr))
return 1;
return 0;
}
кто может сделать её ещё лаконичнее?
|
|
|

27.10.2009, 09:39
|
|
Новичок
Регистрация: 07.07.2008
Сообщений: 6
Провел на форуме: 315057
Репутация:
10
|
|
как то так
PHP код:
function in_str($string, $sub) {
str_replace($sub, '', $string, $c);
if($c) { return 1; } else { return 0; }
}
|
|
|

27.10.2009, 15:37
|
|
Новичок
Регистрация: 07.07.2008
Сообщений: 6
Провел на форуме: 315057
Репутация:
10
|
|
ну или рег экспами
PHP код:
function in_str($string, $sub) {
if(preg_match('/('.join('|', $sub).')/siU', $string, $m)) { return 1; } else { return 0; }
}
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|