можно ли искать в строке подстроки массивом?

Discussion in 'PHP' started by Дикс, 26 Oct 2009.

  1. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    т.е. я хочу сделать такую конструкцию

    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) || ...)
     
    1 person likes this.
  2. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    http://ru.php.net/in_array
     
  3. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    нет, он будет искать в массиве элемент который равен строке
    а мне надо искать в строке подстроки (которых - целый массив)
     
  4. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    ага, немного не так подумал. Стандартную функцию не знаю, может, и есть. Можно такую заюзать
    PHP:
      function in_string ($string$find) {
        
    $flag 0;
        foreach (
    $find as $elem)
          if (
    strpos ($string$elem) !== false)
            
    $flag 1;
        return 
    $flag;
      }
     
    1 person likes this.
  5. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    так и я могу :)
    тогда уж

    PHP:
    function in_str($string$substrs)
    {
        if(
    sizeof($substrs))
        foreach(
    $substrs as $substr)
            if(
    stristr($string$substr))
                return 
    1;

        return 
    0;
    }
    кто может сделать её ещё лаконичнее?
     
  6. Exgibichi

    Exgibichi New Member

    Joined:
    7 Jul 2008
    Messages:
    6
    Likes Received:
    2
    Reputations:
    0
    как то так :D
    PHP:
    function in_str($string$sub) {
     
        
    str_replace($sub''$string$c);
        
        if(
    $c) { return 1; } else { return 0; }
        

     
    1 person likes this.
  7. Exgibichi

    Exgibichi New Member

    Joined:
    7 Jul 2008
    Messages:
    6
    Likes Received:
    2
    Reputations:
    0
    ну или рег экспами
    PHP:
    function in_str($string$sub) {
     
        if(
    preg_match('/('.join('|'$sub).')/siU'$string$m)) { return 1; } else { return 0; }
        

     
Loading...
Similar Threads - искать строке подстроки
  1. GAiN
    Replies:
    3
    Views:
    7,385