1--TEST--
2Test stripos() function : usage variations - null terminated strings for 'needle' argument
3--FILE--
4<?php
5/* Prototype  : int stripos ( string $haystack, string $needle [, int $offset] );
6 * Description: Find position of first occurrence of a case-insensitive string
7 * Source code: ext/standard/string.c
8*/
9
10/* Test stripos() function with null terminated strings for 'needle' argument
11 *  in order to check binary safe
12*/
13
14echo "*** Test stripos() function: binary safe ***\n";
15$haystack = "\0Hello\0World\0";
16
17$needles = array(
18  "Hello".chr(0)."World",
19  chr(0)."Hello World",
20  "Hello World".chr(0),
21  chr(0).chr(0).chr(0),
22  "Hello\0world",
23  "\0Hello",
24  "Hello\0"
25);
26
27for($index = 0; $index < count($needles); $index++ ) {
28  var_dump( stripos($haystack, $needles[$index]) );
29  var_dump( stripos($haystack, $needles[$index], $index) );
30}
31echo "*** Done ***";
32?>
33--EXPECTF--
34*** Test stripos() function: binary safe ***
35int(1)
36int(1)
37bool(false)
38bool(false)
39bool(false)
40bool(false)
41bool(false)
42bool(false)
43int(1)
44bool(false)
45int(0)
46bool(false)
47int(1)
48bool(false)
49*** Done ***
50