1--TEST--
2Test chop() function : usage variations - with heredoc string
3--FILE--
4<?php
5/* Prototype  : string chop ( string $str [, string $charlist] )
6 * Description: Strip whitespace (or other characters) from the end of a string
7 * Source code: ext/standard/string.c
8*/
9
10/*
11 * Testing chop() : with heredoc strings
12*/
13
14echo "*** Testing chop() : with heredoc strings ***\n";
15
16// defining different heredoc strings
17$empty_heredoc = <<<EOT
18EOT;
19
20$heredoc_with_newline = <<<EOT
21\n
22
23EOT;
24
25$heredoc_with_characters = <<<EOT
26first line of heredoc string
27second line of heredoc string
28third line of heredocstring
29EOT;
30
31$heredoc_with_newline_and_tabs = <<<EOT
32hello\tworld\nhello\nworld\n
33EOT;
34
35$heredoc_with_alphanumerics = <<<EOT
36hello123world456
371234hello\t1234
38EOT;
39
40$heredoc_with_embedded_nulls = <<<EOT
41hello\0world\0hello
42\0hello\0
43EOT;
44
45$heredoc_strings = array(
46                   $empty_heredoc,
47                   $heredoc_with_newline,
48                   $heredoc_with_characters,
49 		   $heredoc_with_newline_and_tabs,
50 		   $heredoc_with_alphanumerics,
51		   $heredoc_with_embedded_nulls
52		   );
53$count = 1;
54foreach($heredoc_strings as $string)  {
55  echo "\n--- Iteration $count ---\n";
56  var_dump( chop($string) );
57  var_dump( chop($string, "12345o\0\n\t") );
58  $count++;
59}
60
61echo "Done\n";
62?>
63--EXPECTF--
64*** Testing chop() : with heredoc strings ***
65
66--- Iteration 1 ---
67string(0) ""
68string(0) ""
69
70--- Iteration 2 ---
71string(0) ""
72string(0) ""
73
74--- Iteration 3 ---
75string(86) "first line of heredoc string
76second line of heredoc string
77third line of heredocstring"
78string(86) "first line of heredoc string
79second line of heredoc string
80third line of heredocstring"
81
82--- Iteration 4 ---
83string(23) "hello	world
84hello
85world"
86string(23) "hello	world
87hello
88world"
89
90--- Iteration 5 ---
91string(31) "hello123world456
921234hello	1234"
93string(25) "hello123world456
941234hell"
95
96--- Iteration 6 ---
97string(24) "hello�world�hello
98�hello"
99string(23) "hello�world�hello
100�hell"
101Done
102