Scans the buffer for an occurrence of a string

- « EventBuffer::readLine

- EventBuffer::searchEol »

- PHP Manual
- EventBuffer
- Scans the buffer for an occurrence of a string

# EventBuffer::search

(PECL event >= 1.2.6-beta)

EventBuffer::search — Scans the buffer for an occurrence of a string

### Description

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

Scans the buffer for an occurrence of the string `what`. It returns numeric position of the string, or `false` if the string was not found.

If the `start` argument is provided, it points to the position at which the search should begin; otherwise, the search is performed from the start of the string. If `end` argument provided, the search is performed between start and end buffer positions.

### Parameters

`what`

  String to search.

`start`

  Start search position.

`end`

  End search position.

### Return Values

Returns numeric position of the first occurrence of the string in the buffer, or `false` if string is not found.

Warning

This function may return Boolean `false`, but may also return a non-Boolean value which evaluates to `false`. Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.

### Examples

Example #1 EventBuffer::search() example

    <?php
    // Count total occurrences of 'str' in '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"));
    ?>

The above example will output something similar to:

    int(3)

### See Also

- EventBuffer::searchEol() - Scans the buffer for an occurrence of an end of line