summaryrefslogtreecommitdiff
path: root/tests/executor/preg_replace.phpt
blob: 9060a29c51f708a7a76a4c5b7789d3a4b092047a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
--TEST--
Testing protection against "\0" in preg_replace() first parameter
--SKIPIF--
<?php include "../skipif.inc"; ?>
--INI--
suhosin.log.sapi=0
--FILE--
<?php
    
    $text1 = "One little boy with two dogs, three cats and four birds";
    $text2 = "The three cats eat the four birds";

    $regex_array = array("/one/", "/two/", "/three/");
    $regex_array0 = array("/one/\0", "/two/", "/three/");
    $replace_array = array("1", "2", "3");
    $regex = "/eat/";
    $regex0 = "/ea\0t/";
    $replace = "play with";
    
    var_dump(preg_replace($regex_array, $replace_array, $text1));
    var_dump(preg_replace($regex_array0, $replace_array, $text1));
    var_dump(preg_replace($regex, $replace, $text2));
    var_dump(preg_replace($regex0, $replace, $text2));
    
?>
--EXPECT--
string(49) "One little boy with 2 dogs, 3 cats and four birds"
bool(false)
string(39) "The three cats play with the four birds"
bool(false)