Сканирует буфер на наличие строки

# EventBuffer::search

(PECL event >= 1.2.6-beta)

EventBuffer::search — Сканирует буфер на наличие строки

### Описание

public function EventBuffer::search( string `$what` , int `$start` = -1 , int `$end` = -1 ): mixed

Метод сканирует буфер на наличие строки `what`. Метод возвращает числовую позицию строки или значение `false`, если не находит строку.

Параметр `start` указывает на позицию, с которой метод начнёт поиск; со значением по умолчанию поиск выполняется с начала строки. При передаче аргумента `end` поиск выполняется между начальной и конечной позициями буфера.

### Список параметров

`what`

  Строка для поиска.

`start`

  Позиция начала поиска.

`end`

  Позиция окончания поиска.

### Возвращаемые значения

Метод возвращает числовую позицию первого вхождения строки в буфере или значение `false`, если не находит строку.

Внимание

Функция возвращает как логическое значение `false`, так и нелогическое значение, которое приводится к `false`. Прочитайте раздел «Логический тип», чтобы получить дополнительную информацию. Используйте оператор === для проверки значения, которое возвращает функция.

### Примеры

Пример #1 Пример сканирования буфера на наличие строки методом EventBuffer::search()

    <?php

    // Подсчитать, сколько раз подстрока 'str' входит в строку 'buf'
    function count_instances($buf, $str)
    {
        $total = 0;
        $p     = 0;
        $i     = 0;

        while (1) {
            $p = $buf->search($str, $p);

            if ($p === FALSE) {
                break;
            }

            ++$total;
            ++$p;
        }

        return $total;
    }

    $buf = new EventBuffer();
    $buf->add("Some string within a string inside another string");

    var_dump(count_instances($buf, "str"));

    ?>

Вывод приведённого примера будет похож на:

    int(3)

### Смотрите также

- EventBuffer::searchEol() - Сканирует буфер на наличие конца строки

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open