From db1d335011c0a05e0081ba2d012f2cc57bdd97ea Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Thu, 21 Mar 2019 01:00:02 +0100 Subject: [PATCH 01/14] Deprecate Short tags --- php.ini-development | 5 ----- php.ini-production | 5 ----- tests/lang/short_tags.001.phpt | 1 + 3 files changed, 1 insertion(+), 10 deletions(-) diff --git a/php.ini-development b/php.ini-development index 374d26cc446ab..b68c2cabdd3d0 100644 --- a/php.ini-development +++ b/php.ini-development @@ -148,11 +148,6 @@ ; Development Value: 5 ; Production Value: 5 -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - ; variables_order ; Default Value: "EGPCS" ; Development Value: "GPCS" diff --git a/php.ini-production b/php.ini-production index fecff7c473d52..c8e517f9c0f44 100644 --- a/php.ini-production +++ b/php.ini-production @@ -148,11 +148,6 @@ ; Development Value: 5 ; Production Value: 5 -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - ; variables_order ; Default Value: "EGPCS" ; Development Value: "GPCS" diff --git a/tests/lang/short_tags.001.phpt b/tests/lang/short_tags.001.phpt index 522018e3068fa..a9145a1150643 100644 --- a/tests/lang/short_tags.001.phpt +++ b/tests/lang/short_tags.001.phpt @@ -8,5 +8,6 @@ echo "Used a short tag\n"; ?> Finished --EXPECT-- +Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 Used a short tag Finished From 2df58ed3831a4db8da90172cf4ad771f89c47e0f Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Thu, 21 Mar 2019 22:19:14 +0100 Subject: [PATCH 02/14] Add depracation notice in strip_tags tests which use short_tags ini setting. --- ext/standard/tests/strings/strip_tags_basic1.phpt | 1 + ext/standard/tests/strings/strip_tags_basic2.phpt | 1 + ext/standard/tests/strings/strip_tags_variation10.phpt | 1 + ext/standard/tests/strings/strip_tags_variation11.phpt | 1 + ext/standard/tests/strings/strip_tags_variation2.phpt | 1 + ext/standard/tests/strings/strip_tags_variation4.phpt | 1 + ext/standard/tests/strings/strip_tags_variation5.phpt | 4 +++- ext/standard/tests/strings/strip_tags_variation6.phpt | 1 + ext/standard/tests/strings/strip_tags_variation7.phpt | 1 + ext/standard/tests/strings/strip_tags_variation8.phpt | 1 + ext/standard/tests/strings/strip_tags_variation9.phpt | 7 +++++-- 11 files changed, 17 insertions(+), 3 deletions(-) diff --git a/ext/standard/tests/strings/strip_tags_basic1.phpt b/ext/standard/tests/strings/strip_tags_basic1.phpt index 164cf504522a9..865ae3823ce3d 100644 --- a/ext/standard/tests/strings/strip_tags_basic1.phpt +++ b/ext/standard/tests/strings/strip_tags_basic1.phpt @@ -43,6 +43,7 @@ foreach($string_array as $string) echo "Done"; ?> --EXPECT-- +Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : basic functionality *** -- Iteration 1 -- string(5) "hello" diff --git a/ext/standard/tests/strings/strip_tags_basic2.phpt b/ext/standard/tests/strings/strip_tags_basic2.phpt index e9a48af79d5d3..17b5f9cd6465e 100644 --- a/ext/standard/tests/strings/strip_tags_basic2.phpt +++ b/ext/standard/tests/strings/strip_tags_basic2.phpt @@ -39,6 +39,7 @@ foreach($allowed_tags_array as $tags) echo "Done"; ?> --EXPECT-- +Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : basic functionality *** -- Iteration 1 -- string(33) "helloworldOther text" diff --git a/ext/standard/tests/strings/strip_tags_variation10.phpt b/ext/standard/tests/strings/strip_tags_variation10.phpt index eef338fa9ca04..c03ceac632650 100644 --- a/ext/standard/tests/strings/strip_tags_variation10.phpt +++ b/ext/standard/tests/strings/strip_tags_variation10.phpt @@ -39,6 +39,7 @@ foreach($single_quote_string as $string_value) echo "Done"; ?> --EXPECT-- +Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : usage variations *** -- Iteration 1 -- string(51) " \$ -> This represents the dollar sign" diff --git a/ext/standard/tests/strings/strip_tags_variation11.phpt b/ext/standard/tests/strings/strip_tags_variation11.phpt index 63d579f4adaba..6b83f7ce19f61 100644 --- a/ext/standard/tests/strings/strip_tags_variation11.phpt +++ b/ext/standard/tests/strings/strip_tags_variation11.phpt @@ -29,6 +29,7 @@ foreach($string_array as $string) echo "Done"; ?> --EXPECT-- +Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : obscure functionality *** -- Iteration 1 -- string(12) "hello world" diff --git a/ext/standard/tests/strings/strip_tags_variation2.phpt b/ext/standard/tests/strings/strip_tags_variation2.phpt index ee7d5c6cbc5c4..af1bb101c5966 100644 --- a/ext/standard/tests/strings/strip_tags_variation2.phpt +++ b/ext/standard/tests/strings/strip_tags_variation2.phpt @@ -86,6 +86,7 @@ foreach($values as $value) { echo "Done"; ?> --EXPECT-- +Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : usage variations *** -- Iteration 1 -- string(10) "helloworld" diff --git a/ext/standard/tests/strings/strip_tags_variation4.phpt b/ext/standard/tests/strings/strip_tags_variation4.phpt index 2118d58959fe9..3c5f0392ad1d2 100644 --- a/ext/standard/tests/strings/strip_tags_variation4.phpt +++ b/ext/standard/tests/strings/strip_tags_variation4.phpt @@ -46,6 +46,7 @@ foreach($strings as $string_value) echo "Done"; ?> --EXPECT-- +Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : usage variations *** -- Iteration 1 -- string(32) "hello world... strip_tags_test" diff --git a/ext/standard/tests/strings/strip_tags_variation5.phpt b/ext/standard/tests/strings/strip_tags_variation5.phpt index e6b19540e3949..1edbeedd2fda9 100644 --- a/ext/standard/tests/strings/strip_tags_variation5.phpt +++ b/ext/standard/tests/strings/strip_tags_variation5.phpt @@ -78,6 +78,7 @@ for($index =0; $index < count($res_heredoc_strings); $index ++) { echo "Done\n"; ?> --EXPECT-- +Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : usage variations *** -- Iteration 1 -- string(0) "" @@ -89,7 +90,8 @@ string(67) "hello world This is a double quoted string" -- Iteration 4 -- -string(44) "hello world +string(44) "hello + world 1111 != 2222 " -- Iteration 5 -- diff --git a/ext/standard/tests/strings/strip_tags_variation6.phpt b/ext/standard/tests/strings/strip_tags_variation6.phpt index b066e718b39b2..dfe86302544f1 100644 --- a/ext/standard/tests/strings/strip_tags_variation6.phpt +++ b/ext/standard/tests/strings/strip_tags_variation6.phpt @@ -35,6 +35,7 @@ foreach($strings as $value) echo "Done"; ?> --EXPECT-- +Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : usage variations *** -- Iteration 1 -- string(18) " I am html string " diff --git a/ext/standard/tests/strings/strip_tags_variation7.phpt b/ext/standard/tests/strings/strip_tags_variation7.phpt index 5ff9177b18463..43bd5d8e60d27 100644 --- a/ext/standard/tests/strings/strip_tags_variation7.phpt +++ b/ext/standard/tests/strings/strip_tags_variation7.phpt @@ -44,6 +44,7 @@ foreach($strings as $string_value) echo "Done"; ?> --EXPECT-- +Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : usage variations *** -- Iteration 1 -- string(43) "hello world... strip_tags_test" diff --git a/ext/standard/tests/strings/strip_tags_variation8.phpt b/ext/standard/tests/strings/strip_tags_variation8.phpt index f3c5a17136ad2..0b2bf124fd375 100644 --- a/ext/standard/tests/strings/strip_tags_variation8.phpt +++ b/ext/standard/tests/strings/strip_tags_variation8.phpt @@ -39,6 +39,7 @@ foreach($quotes as $string_value) echo "Done"; --EXPECT-- +Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : usage variations *** -- Iteration 1 -- string(33) "hello world... strip_tags_test " diff --git a/ext/standard/tests/strings/strip_tags_variation9.phpt b/ext/standard/tests/strings/strip_tags_variation9.phpt index 843653c208df5..83a9932491bf8 100644 --- a/ext/standard/tests/strings/strip_tags_variation9.phpt +++ b/ext/standard/tests/strings/strip_tags_variation9.phpt @@ -37,11 +37,13 @@ foreach($double_quote_string as $string_value) echo "Done"; --EXPECT-- +Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : usage variations *** -- Iteration 1 -- string(50) " $ -> This represents the dollar sign" -- Iteration 2 -- -string(59) " The quick brown fo x jumped over the lazy dog

" +string(59) " + The quick brown fo x jumped over the lazy dog

" -- Iteration 3 -- string(31) "This is a hyper text tag" -- Iteration 4 -- @@ -49,6 +51,7 @@ string(0) "" -- Iteration 5 -- string(26) "

This is a paragraph

" -- Iteration 6 -- -string(62) "This is a text in bold letters \s\malong with slashes +string(62) "This is a text in bold letters +\s\malong with slashes " Done From 6d4fb589502b2211b97d1ae8aa7b2a2bed44585b Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Fri, 22 Mar 2019 01:58:01 +0100 Subject: [PATCH 03/14] Changed default value of PHP short tags in Zend engine and Windows headers. --- Zend/zend.c | 4 ++-- win32/build/config.w32.h.in | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Zend/zend.c b/Zend/zend.c index fceaae62e44f2..b3b97248ed1bf 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -511,10 +511,10 @@ static FILE *zend_fopen_wrapper(const char *filename, zend_string **opened_path) /* }}} */ #ifdef ZTS -static zend_bool short_tags_default = 1; +static zend_bool short_tags_default = 0; static uint32_t compiler_options_default = ZEND_COMPILE_DEFAULT; #else -# define short_tags_default 1 +# define short_tags_default 0 # define compiler_options_default ZEND_COMPILE_DEFAULT #endif diff --git a/win32/build/config.w32.h.in b/win32/build/config.w32.h.in index 06632b0e20d61..b678b69f12bbb 100644 --- a/win32/build/config.w32.h.in +++ b/win32/build/config.w32.h.in @@ -24,7 +24,7 @@ /* PHP Runtime Configuration */ #define PHP_URL_FOPEN 1 #define USE_CONFIG_FILE 1 -#define DEFAULT_SHORT_OPEN_TAG "1" +#define DEFAULT_SHORT_OPEN_TAG "0" /* Platform-Specific Configuration. Should not be changed. */ #define PHP_SIGCHILD 0 From a444139569a6365c9bc7598bbeff1b5e512f57ab Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Fri, 22 Mar 2019 02:09:43 +0100 Subject: [PATCH 04/14] Add Depreciation notice to tokeniser tests which use short tag INI. --- ext/tokenizer/tests/002.phpt | 3 ++- ext/tokenizer/tests/token_get_all_variation15.phpt | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ext/tokenizer/tests/002.phpt b/ext/tokenizer/tests/002.phpt index 2a40ffe292fd5..68e13b365a4d9 100644 --- a/ext/tokenizer/tests/002.phpt +++ b/ext/tokenizer/tests/002.phpt @@ -3,7 +3,7 @@ token_get_all() --SKIPIF-- --INI-- -short_open_tag=1 +short_open_tag=On --FILE-- --EXPECTF-- +Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 array(49) { [0]=> array(3) { diff --git a/ext/tokenizer/tests/token_get_all_variation15.phpt b/ext/tokenizer/tests/token_get_all_variation15.phpt index 56269f5d01463..88d112c8518b6 100644 --- a/ext/tokenizer/tests/token_get_all_variation15.phpt +++ b/ext/tokenizer/tests/token_get_all_variation15.phpt @@ -49,6 +49,7 @@ var_dump( token_get_all($source)); echo "Done" ?> --EXPECTF-- +Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing token_get_all() : with heredoc source string *** array(103) { [0]=> From 21917d275b12c180c85b6834115b57f1130dbcc6 Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Fri, 22 Mar 2019 03:15:51 +0100 Subject: [PATCH 05/14] Fix strip_tags tests. --- ext/standard/tests/strings/strip_tags_variation5.phpt | 3 +-- ext/standard/tests/strings/strip_tags_variation9.phpt | 6 ++---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/ext/standard/tests/strings/strip_tags_variation5.phpt b/ext/standard/tests/strings/strip_tags_variation5.phpt index 1edbeedd2fda9..4c7944ba1b308 100644 --- a/ext/standard/tests/strings/strip_tags_variation5.phpt +++ b/ext/standard/tests/strings/strip_tags_variation5.phpt @@ -90,8 +90,7 @@ string(67) "hello world This is a double quoted string" -- Iteration 4 -- -string(44) "hello - world +string(44) "hello world 1111 != 2222 " -- Iteration 5 -- diff --git a/ext/standard/tests/strings/strip_tags_variation9.phpt b/ext/standard/tests/strings/strip_tags_variation9.phpt index 83a9932491bf8..78a34dcf6f572 100644 --- a/ext/standard/tests/strings/strip_tags_variation9.phpt +++ b/ext/standard/tests/strings/strip_tags_variation9.phpt @@ -42,8 +42,7 @@ Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 -- Iteration 1 -- string(50) " $ -> This represents the dollar sign" -- Iteration 2 -- -string(59) " - The quick brown fo x jumped over the lazy dog

" +string(59) " The quick brown fo x jumped over the lazy dog

" -- Iteration 3 -- string(31) "This is a hyper text tag" -- Iteration 4 -- @@ -51,7 +50,6 @@ string(0) "" -- Iteration 5 -- string(26) "

This is a paragraph

" -- Iteration 6 -- -string(62) "This is a text in bold letters -\s\malong with slashes +string(62) "This is a text in bold letters \s\malong with slashes " Done From 2b6cdcf35e656b6b9cb69f126321d689c02a49e0 Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Fri, 22 Mar 2019 05:37:06 +0100 Subject: [PATCH 06/14] Remove PHP Short Tags. --- Zend/zend.c | 4 --- .../tests/strings/strip_tags_basic1.phpt | 3 -- .../tests/strings/strip_tags_basic2.phpt | 3 -- .../tests/strings/strip_tags_variation10.phpt | 3 -- .../tests/strings/strip_tags_variation11.phpt | 3 -- .../tests/strings/strip_tags_variation2.phpt | 3 -- .../tests/strings/strip_tags_variation4.phpt | 3 -- .../tests/strings/strip_tags_variation5.phpt | 3 -- .../tests/strings/strip_tags_variation6.phpt | 3 -- .../tests/strings/strip_tags_variation7.phpt | 3 -- .../tests/strings/strip_tags_variation8.phpt | 3 -- .../tests/strings/strip_tags_variation9.phpt | 3 -- ext/tokenizer/tests/002.phpt | 3 -- .../tests/token_get_all_variation15.phpt | 3 -- main/main.c | 3 +- tests/lang/short_tags.001.phpt | 13 ------- tests/lang/short_tags.002.phpt | 14 -------- tests/lang/short_tags.004.phpt | 34 ------------------- win32/build/config.w32.h.in | 1 - 19 files changed, 1 insertion(+), 107 deletions(-) delete mode 100644 tests/lang/short_tags.001.phpt delete mode 100644 tests/lang/short_tags.002.phpt delete mode 100644 tests/lang/short_tags.004.phpt diff --git a/Zend/zend.c b/Zend/zend.c index b3b97248ed1bf..54d8f22fdd3a5 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -511,17 +511,14 @@ static FILE *zend_fopen_wrapper(const char *filename, zend_string **opened_path) /* }}} */ #ifdef ZTS -static zend_bool short_tags_default = 0; static uint32_t compiler_options_default = ZEND_COMPILE_DEFAULT; #else -# define short_tags_default 0 # define compiler_options_default ZEND_COMPILE_DEFAULT #endif static void zend_set_default_compile_time_values(void) /* {{{ */ { /* default compile-time values */ - CG(short_tags) = short_tags_default; CG(compiler_options) = compiler_options_default; } /* }}} */ @@ -1002,7 +999,6 @@ int zend_post_startup(void) /* {{{ */ *GLOBAL_CONSTANTS_TABLE = *executor_globals->zend_constants; global_map_ptr_last = compiler_globals->map_ptr_last; - short_tags_default = CG(short_tags); compiler_options_default = CG(compiler_options); zend_destroy_rsrc_list(&EG(persistent_list)); diff --git a/ext/standard/tests/strings/strip_tags_basic1.phpt b/ext/standard/tests/strings/strip_tags_basic1.phpt index 865ae3823ce3d..77cab238769fc 100644 --- a/ext/standard/tests/strings/strip_tags_basic1.phpt +++ b/ext/standard/tests/strings/strip_tags_basic1.phpt @@ -1,7 +1,5 @@ --TEST-- Test strip_tags() function : basic functionality - with default arguments ---INI-- -short_open_tag = on --FILE-- --EXPECT-- -Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : basic functionality *** -- Iteration 1 -- string(5) "hello" diff --git a/ext/standard/tests/strings/strip_tags_basic2.phpt b/ext/standard/tests/strings/strip_tags_basic2.phpt index 17b5f9cd6465e..854c267b2266f 100644 --- a/ext/standard/tests/strings/strip_tags_basic2.phpt +++ b/ext/standard/tests/strings/strip_tags_basic2.phpt @@ -1,7 +1,5 @@ --TEST-- Test strip_tags() function : basic functionality - with all arguments ---INI-- -short_open_tag = on --FILE-- --EXPECT-- -Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : basic functionality *** -- Iteration 1 -- string(33) "helloworldOther text" diff --git a/ext/standard/tests/strings/strip_tags_variation10.phpt b/ext/standard/tests/strings/strip_tags_variation10.phpt index c03ceac632650..f04f06a527a3b 100644 --- a/ext/standard/tests/strings/strip_tags_variation10.phpt +++ b/ext/standard/tests/strings/strip_tags_variation10.phpt @@ -1,7 +1,5 @@ --TEST-- Test strip_tags() function : usage variations - single quoted strings ---INI-- -short_open_tag = on --FILE-- --EXPECT-- -Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : usage variations *** -- Iteration 1 -- string(51) " \$ -> This represents the dollar sign" diff --git a/ext/standard/tests/strings/strip_tags_variation11.phpt b/ext/standard/tests/strings/strip_tags_variation11.phpt index 6b83f7ce19f61..eb8193833c926 100644 --- a/ext/standard/tests/strings/strip_tags_variation11.phpt +++ b/ext/standard/tests/strings/strip_tags_variation11.phpt @@ -1,7 +1,5 @@ --TEST-- Test strip_tags() function : obscure values within attributes ---INI-- -short_open_tag = on --FILE-- --EXPECT-- -Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : obscure functionality *** -- Iteration 1 -- string(12) "hello world" diff --git a/ext/standard/tests/strings/strip_tags_variation2.phpt b/ext/standard/tests/strings/strip_tags_variation2.phpt index af1bb101c5966..1a504530d29f3 100644 --- a/ext/standard/tests/strings/strip_tags_variation2.phpt +++ b/ext/standard/tests/strings/strip_tags_variation2.phpt @@ -1,7 +1,5 @@ --TEST-- Test strip_tags() function : usage variations - unexpected values for 'allowable_tags' ---INI-- -short_open_tag = on --FILE-- --EXPECT-- -Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : usage variations *** -- Iteration 1 -- string(10) "helloworld" diff --git a/ext/standard/tests/strings/strip_tags_variation4.phpt b/ext/standard/tests/strings/strip_tags_variation4.phpt index 3c5f0392ad1d2..484438ef6e5c2 100644 --- a/ext/standard/tests/strings/strip_tags_variation4.phpt +++ b/ext/standard/tests/strings/strip_tags_variation4.phpt @@ -1,7 +1,5 @@ --TEST-- Test strip_tags() function : usage variations - invalid values for 'str' and valid 'allowable_tags' ---INI-- -short_open_tag = on --FILE-- --EXPECT-- -Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : usage variations *** -- Iteration 1 -- string(32) "hello world... strip_tags_test" diff --git a/ext/standard/tests/strings/strip_tags_variation5.phpt b/ext/standard/tests/strings/strip_tags_variation5.phpt index 4c7944ba1b308..e96d2c55c139e 100644 --- a/ext/standard/tests/strings/strip_tags_variation5.phpt +++ b/ext/standard/tests/strings/strip_tags_variation5.phpt @@ -1,7 +1,5 @@ --TEST-- Test strip_tags() function : usage variations - heredoc strings ---INI-- -short_open_tag = on --FILE-- --EXPECT-- -Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : usage variations *** -- Iteration 1 -- string(0) "" diff --git a/ext/standard/tests/strings/strip_tags_variation6.phpt b/ext/standard/tests/strings/strip_tags_variation6.phpt index dfe86302544f1..3fbda44023ff1 100644 --- a/ext/standard/tests/strings/strip_tags_variation6.phpt +++ b/ext/standard/tests/strings/strip_tags_variation6.phpt @@ -1,7 +1,5 @@ --TEST-- Test strip_tags() function : usage variations - binary safe checking ---INI-- -short_open_tag = on --FILE-- --EXPECT-- -Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : usage variations *** -- Iteration 1 -- string(18) " I am html string " diff --git a/ext/standard/tests/strings/strip_tags_variation7.phpt b/ext/standard/tests/strings/strip_tags_variation7.phpt index 43bd5d8e60d27..7c2d9255d6f51 100644 --- a/ext/standard/tests/strings/strip_tags_variation7.phpt +++ b/ext/standard/tests/strings/strip_tags_variation7.phpt @@ -1,7 +1,5 @@ --TEST-- Test strip_tags() function : usage variations - invalid values for 'str' and 'allowable_tags' ---INI-- -short_open_tag = on --FILE-- --EXPECT-- -Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing strip_tags() : usage variations *** -- Iteration 1 -- string(43) "hello world... strip_tags_test" diff --git a/ext/standard/tests/strings/strip_tags_variation8.phpt b/ext/standard/tests/strings/strip_tags_variation8.phpt index 0b2bf124fd375..e44e296c5ddd2 100644 --- a/ext/standard/tests/strings/strip_tags_variation8.phpt +++ b/ext/standard/tests/strings/strip_tags_variation8.phpt @@ -1,7 +1,5 @@ --TEST-- Test strip_tags() function : usage variations - valid value for 'str' and invalid values for 'allowable_tags' ---INI-- -short_open_tag = on --FILE-- $ -> This represents the dollar sign" diff --git a/ext/tokenizer/tests/002.phpt b/ext/tokenizer/tests/002.phpt index 68e13b365a4d9..2236f08b8580d 100644 --- a/ext/tokenizer/tests/002.phpt +++ b/ext/tokenizer/tests/002.phpt @@ -2,8 +2,6 @@ token_get_all() --SKIPIF-- ---INI-- -short_open_tag=On --FILE-- --EXPECTF-- -Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 array(49) { [0]=> array(3) { diff --git a/ext/tokenizer/tests/token_get_all_variation15.phpt b/ext/tokenizer/tests/token_get_all_variation15.phpt index 88d112c8518b6..b9e6c1fd9f00c 100644 --- a/ext/tokenizer/tests/token_get_all_variation15.phpt +++ b/ext/tokenizer/tests/token_get_all_variation15.phpt @@ -2,8 +2,6 @@ Test token_get_all() function : usage variations - heredoc string for 'source' --SKIPIF-- ---INI-- -short_open_tag=On --FILE-- --EXPECTF-- -Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 *** Testing token_get_all() : with heredoc source string *** array(103) { [0]=> diff --git a/main/main.c b/main/main.c index 05598f9dafab3..860197541df4a 100644 --- a/main/main.c +++ b/main/main.c @@ -728,7 +728,6 @@ PHP_INI_BEGIN() STD_PHP_INI_ENTRY("output_handler", NULL, PHP_INI_PERDIR|PHP_INI_SYSTEM, OnUpdateString, output_handler, php_core_globals, core_globals) STD_PHP_INI_BOOLEAN("register_argc_argv", "1", PHP_INI_PERDIR|PHP_INI_SYSTEM, OnUpdateBool, register_argc_argv, php_core_globals, core_globals) STD_PHP_INI_BOOLEAN("auto_globals_jit", "1", PHP_INI_PERDIR|PHP_INI_SYSTEM, OnUpdateBool, auto_globals_jit, php_core_globals, core_globals) - STD_PHP_INI_BOOLEAN("short_open_tag", DEFAULT_SHORT_OPEN_TAG, PHP_INI_SYSTEM|PHP_INI_PERDIR, OnUpdateBool, short_tags, zend_compiler_globals, compiler_globals) STD_PHP_INI_ENTRY("unserialize_callback_func", NULL, PHP_INI_ALL, OnUpdateString, unserialize_callback_func, php_core_globals, core_globals) STD_PHP_INI_ENTRY("serialize_precision", "-1", PHP_INI_ALL, OnSetSerializePrecision, serialize_precision, php_core_globals, core_globals) @@ -2344,7 +2343,7 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod struct { const long error_level; const char *phrase; - const char *directives[18]; /* Remember to change this if the number of directives change */ + const char *directives[17]; /* Remember to change this if the number of directives change */ } directives[2] = { { E_DEPRECATED, diff --git a/tests/lang/short_tags.001.phpt b/tests/lang/short_tags.001.phpt deleted file mode 100644 index a9145a1150643..0000000000000 --- a/tests/lang/short_tags.001.phpt +++ /dev/null @@ -1,13 +0,0 @@ ---TEST-- -short_open_tag: On ---INI-- -short_open_tag=on ---FILE-- - -Finished ---EXPECT-- -Deprecated: Directive 'short_open_tag' is deprecated in Unknown on line 0 -Used a short tag -Finished diff --git a/tests/lang/short_tags.002.phpt b/tests/lang/short_tags.002.phpt deleted file mode 100644 index 6a3d5e09968f2..0000000000000 --- a/tests/lang/short_tags.002.phpt +++ /dev/null @@ -1,14 +0,0 @@ ---TEST-- -short_open_tag: Off ---INI-- -short_open_tag=off ---FILE-- - -Finished ---EXPECT-- - -Finished diff --git a/tests/lang/short_tags.004.phpt b/tests/lang/short_tags.004.phpt deleted file mode 100644 index 6df8af1c2a698..0000000000000 --- a/tests/lang/short_tags.004.phpt +++ /dev/null @@ -1,34 +0,0 @@ ---TEST-- -short_open_tag: Off ---INI-- -short_open_tag=off ---FILE-- -<%= 'so should this' %> - - - - - -<%= $a%> - - - - - ---EXPECTF-- -<%= 'so should this' %> - - -This gets echoed twice -<%= $a%> - - - - -Notice: Undefined variable: b in %s on line %d - -Notice: Undefined variable: b in %s on line %d diff --git a/win32/build/config.w32.h.in b/win32/build/config.w32.h.in index b678b69f12bbb..4d70fd91506cc 100644 --- a/win32/build/config.w32.h.in +++ b/win32/build/config.w32.h.in @@ -24,7 +24,6 @@ /* PHP Runtime Configuration */ #define PHP_URL_FOPEN 1 #define USE_CONFIG_FILE 1 -#define DEFAULT_SHORT_OPEN_TAG "0" /* Platform-Specific Configuration. Should not be changed. */ #define PHP_SIGCHILD 0 From 037e2a9ac52ed1a20dd3cd4b59ec2827b1698395 Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Fri, 22 Mar 2019 17:35:10 +0100 Subject: [PATCH 07/14] Added short_open_tags to E_CORE_ERROR --- main/main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/main/main.c b/main/main.c index 860197541df4a..b5887e2ca799a 100644 --- a/main/main.c +++ b/main/main.c @@ -2373,6 +2373,7 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod "safe_mode_protected_env_vars", "zend.ze1_compatibility_mode", "track_errors", + "short_open_tag", NULL } } From 4b249af66153aba123824d29aebaa1f3f2c26e15 Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Fri, 22 Mar 2019 17:35:58 +0100 Subject: [PATCH 08/14] Removed info about short_open_tags in INI files --- php.ini-development | 13 ------------- php.ini-production | 13 ------------- 2 files changed, 26 deletions(-) diff --git a/php.ini-development b/php.ini-development index b68c2cabdd3d0..09d6abbb45bb0 100644 --- a/php.ini-development +++ b/php.ini-development @@ -173,19 +173,6 @@ ; http://php.net/engine engine = On -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the Date: Fri, 22 Mar 2019 19:10:28 +0100 Subject: [PATCH 09/14] Remove PHP Short tags from language scanner and globals --- Zend/zend_globals.h | 1 - Zend/zend_language_scanner.l | 15 +-------------- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/Zend/zend_globals.h b/Zend/zend_globals.h index 6644e735cae17..b0c2b0b029e5d 100644 --- a/Zend/zend_globals.h +++ b/Zend/zend_globals.h @@ -83,7 +83,6 @@ struct _zend_compiler_globals { zend_bool parse_error; zend_bool in_compilation; - zend_bool short_tags; zend_bool unclean_shutdown; diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index b1e25ebae51b3..890342e4babab 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -1947,19 +1947,6 @@ string: RETURN_TOKEN(T_OPEN_TAG); } - -"{ANY_CHAR} { if (YYCURSOR > YYLIMIT) { RETURN_TOKEN(END); @@ -1977,7 +1964,7 @@ inline_char_handler: } if (*YYCURSOR == '?') { - if (CG(short_tags) || !strncasecmp((char*)YYCURSOR + 1, "php", 3) || (*(YYCURSOR + 1) == '=')) { /* Assume [ \t\n\r] follows "php" */ + if (!strncasecmp((char*)YYCURSOR + 1, "php", 3) || (*(YYCURSOR + 1) == '=')) { /* Assume [ \t\n\r] follows "php" */ YYCURSOR--; break; From 8652f1858c2167345a12b13533b142366d2abede Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Fri, 22 Mar 2019 19:12:15 +0100 Subject: [PATCH 10/14] Removed PHP short tags option in build config file --- configure.ac | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/configure.ac b/configure.ac index 00a16cf2bfbe0..d17d9cf737012 100644 --- a/configure.ac +++ b/configure.ac @@ -1000,19 +1000,6 @@ if test "$PHP_LIBGCC" = "yes"; then PHP_ADD_LIBRARY(gcc, yes) fi -PHP_ARG_ENABLE([short-tags], - [whether to enable short tags by default], - [AS_HELP_STRING([--disable-short-tags], - [Disable the short-form Date: Fri, 22 Mar 2019 19:31:03 +0100 Subject: [PATCH 11/14] Remove short open tag detection from Readline extension --- ext/readline/readline_cli.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/ext/readline/readline_cli.c b/ext/readline/readline_cli.c index 956386c532ec3..1e2f7fdc8d3a8 100644 --- a/ext/readline/readline_cli.c +++ b/ext/readline/readline_cli.c @@ -359,9 +359,7 @@ static int cli_is_valid_code(char *code, size_t len, zend_string **prompt) /* {{ } break; case outside: - if ((CG(short_tags) && !strncmp(code+i-1, " 3 && !strncmp(code+i-4, " 3 && !strncmp(code+i-4, " Date: Fri, 22 Mar 2019 19:33:06 +0100 Subject: [PATCH 12/14] Remove short open tag INI declaration in Unit test for bug 55445 --- Zend/tests/bug55445.phpt | 2 -- 1 file changed, 2 deletions(-) diff --git a/Zend/tests/bug55445.phpt b/Zend/tests/bug55445.phpt index 2ccba5ff082b8..8ab06860baf9d 100644 --- a/Zend/tests/bug55445.phpt +++ b/Zend/tests/bug55445.phpt @@ -1,7 +1,5 @@ --TEST-- Bug #55445 (Lexer error with short open tags) ---INI-- -short_open_tag=0 --FILE--

Welcome

--EXPECT-- From 14f551b16b7fa7c1eec7a7c6474eed663ed659ed Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Mon, 25 Mar 2019 03:38:51 +0100 Subject: [PATCH 13/14] Fix number of directives --- main/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/main.c b/main/main.c index b5887e2ca799a..4a63d02af305f 100644 --- a/main/main.c +++ b/main/main.c @@ -2343,7 +2343,7 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod struct { const long error_level; const char *phrase; - const char *directives[17]; /* Remember to change this if the number of directives change */ + const char *directives[19]; /* Remember to change this if the number of directives change */ } directives[2] = { { E_DEPRECATED, From 23a94571014bae809f91f750c63b225cf5002774 Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Mon, 25 Mar 2019 19:07:02 +0100 Subject: [PATCH 14/14] Fix tokenizer test --- ext/tokenizer/tests/002.phpt | 820 +++-------------------------------- 1 file changed, 70 insertions(+), 750 deletions(-) diff --git a/ext/tokenizer/tests/002.phpt b/ext/tokenizer/tests/002.phpt index 2236f08b8580d..031912cacf45b 100644 --- a/ext/tokenizer/tests/002.phpt +++ b/ext/tokenizer/tests/002.phpt @@ -20,948 +20,268 @@ foreach ($strings as $s) { echo "Done\n"; ?> --EXPECTF-- -array(49) { - [0]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(2) " - int(1) - } - [1]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [2]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(4) "echo" - [2]=> - int(1) - } - [3]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [4]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) "1" - [2]=> - int(1) - } - [5]=> - string(1) ";" - [6]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [7]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(2) "if" - [2]=> - int(1) - } - [8]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [9]=> - string(1) "(" - [10]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(5) "isset" - [2]=> - int(1) - } - [11]=> - string(1) "(" - [12]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(2) "$a" - [2]=> - int(1) - } - [13]=> - string(1) ")" - [14]=> - string(1) ")" - [15]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [16]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(5) "print" - [2]=> - int(1) - } - [17]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [18]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(2) "$a" - [2]=> - int(1) - } - [19]=> - string(1) "+" - [20]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) "1" - [2]=> - int(1) - } - [21]=> - string(1) ";" - [22]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [23]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(2) "$a" - [2]=> - int(1) - } - [24]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(2) "++" - [2]=> - int(1) - } - [25]=> - string(1) ";" - [26]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [27]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(2) "$a" - [2]=> - int(1) - } - [28]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(2) "--" - [2]=> - int(1) - } - [29]=> - string(1) ";" - [30]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [31]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(2) "$a" - [2]=> - int(1) - } - [32]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [33]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(2) "==" - [2]=> - int(1) - } - [34]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [35]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) "2" - [2]=> - int(1) - } - [36]=> - string(1) ";" - [37]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [38]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(2) "$a" - [2]=> - int(1) - } - [39]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [40]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(3) "===" - [2]=> - int(1) - } - [41]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [42]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) "2" - [2]=> - int(1) - } - [43]=> - string(1) ";" - [44]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [45]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(5) "endif" - [2]=> - int(1) - } - [46]=> - string(1) ";" - [47]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [48]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(2) "?>" - [2]=> - int(1) - } -} -array(37) { - [0]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(6) " - int(1) - } - [1]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(6) "switch" - [2]=> - int(1) - } - [2]=> - string(1) "(" - [3]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(2) "$a" - [2]=> - int(1) - } - [4]=> - string(1) ")" - [5]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [6]=> - string(1) "{" - [7]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [8]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(4) "case" - [2]=> - int(1) - } - [9]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [10]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) "1" - [2]=> - int(1) - } - [11]=> - string(1) ":" - [12]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [13]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(5) "break" - [2]=> - int(1) - } - [14]=> - string(1) ";" - [15]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [16]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(7) "default" - [2]=> - int(1) - } - [17]=> - string(1) ":" - [18]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [19]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(5) "break" - [2]=> - int(1) - } - [20]=> - string(1) ";" - [21]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [22]=> - string(1) "}" - [23]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [24]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(5) "while" - [2]=> - int(1) - } - [25]=> - string(1) "(" - [26]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(2) "$a" - [2]=> - int(1) - } - [27]=> - string(1) ")" - [28]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [29]=> - string(1) "{" - [30]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [31]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(4) "exit" - [2]=> - int(1) - } - [32]=> - string(1) ";" - [33]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [34]=> - string(1) "}" - [35]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [36]=> +array(1) { + [0]=> array(3) { [0]=> - int(%d) + int(314) [1]=> - string(2) "?>" + string(78) "" [2]=> int(1) } } -array(48) { +array(37) { [0]=> array(3) { [0]=> - int(%d) + int(380) [1]=> - string(2) " int(1) } [1]=> array(3) { [0]=> - int(%d) + int(334) [1]=> - string(1) " " + string(6) "switch" [2]=> int(1) } [2]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(13) "/* comment */" - [2]=> - int(1) - } + string(1) "(" [3]=> array(3) { [0]=> - int(%d) + int(313) [1]=> - string(1) " " + string(2) "$a" [2]=> int(1) } [4]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(2) "if" - [2]=> - int(1) - } + string(1) ")" [5]=> array(3) { [0]=> - int(%d) + int(383) [1]=> string(1) " " [2]=> int(1) } [6]=> - string(1) "(" + string(1) "{" [7]=> array(3) { [0]=> - int(%d) + int(383) [1]=> - string(1) "1" + string(1) " " [2]=> int(1) } [8]=> array(3) { [0]=> - int(%d) + int(336) [1]=> - string(1) " " + string(4) "case" [2]=> int(1) } [9]=> array(3) { [0]=> - int(%d) + int(383) [1]=> - string(2) "||" + string(1) " " [2]=> int(1) } [10]=> array(3) { [0]=> - int(%d) + int(310) [1]=> - string(1) " " + string(1) "1" [2]=> int(1) } [11]=> + string(1) ":" + [12]=> array(3) { [0]=> - int(%d) + int(383) [1]=> - string(1) "2" + string(1) " " [2]=> int(1) } - [12]=> - string(1) ")" [13]=> array(3) { [0]=> - int(%d) + int(338) [1]=> - string(1) " " + string(5) "break" [2]=> int(1) } [14]=> - string(1) "{" + string(1) ";" [15]=> array(3) { [0]=> - int(%d) + int(383) [1]=> string(1) " " [2]=> int(1) } [16]=> - string(1) "}" - [17]=> array(3) { [0]=> - int(%d) + int(337) [1]=> - string(1) " " + string(7) "default" [2]=> int(1) } + [17]=> + string(1) ":" [18]=> array(3) { [0]=> - int(%d) + int(383) [1]=> - string(2) "$a" + string(1) " " [2]=> int(1) } [19]=> array(3) { [0]=> - int(%d) + int(338) [1]=> - string(1) " " + string(5) "break" [2]=> int(1) } [20]=> - string(1) "=" + string(1) ";" [21]=> array(3) { [0]=> - int(%d) + int(383) [1]=> string(1) " " [2]=> int(1) } [22]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) "2" - [2]=> - int(1) - } + string(1) "}" [23]=> array(3) { [0]=> - int(%d) + int(383) [1]=> string(1) " " [2]=> int(1) } [24]=> - string(1) "|" - [25]=> array(3) { [0]=> - int(%d) + int(325) [1]=> - string(1) " " + string(5) "while" [2]=> int(1) } + [25]=> + string(1) "(" [26]=> array(3) { [0]=> - int(%d) + int(313) [1]=> - string(1) "1" + string(2) "$a" [2]=> int(1) } [27]=> - string(1) ";" + string(1) ")" [28]=> array(3) { [0]=> - int(%d) + int(383) [1]=> string(1) " " [2]=> int(1) } [29]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(2) "$b" - [2]=> - int(1) - } + string(1) "{" [30]=> array(3) { [0]=> - int(%d) + int(383) [1]=> string(1) " " [2]=> int(1) } [31]=> - string(1) "=" - [32]=> array(3) { [0]=> - int(%d) + int(320) [1]=> - string(1) " " + string(4) "exit" [2]=> int(1) } + [32]=> + string(1) ";" [33]=> array(3) { [0]=> - int(%d) + int(383) [1]=> - string(1) "3" + string(1) " " [2]=> int(1) } [34]=> - string(1) "^" + string(1) "}" [35]=> array(3) { [0]=> - int(%d) - [1]=> - string(1) "2" - [2]=> - int(1) - } - [36]=> - string(1) ";" - [37]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [38]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(2) "$c" - [2]=> - int(1) - } - [39]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) " " - [2]=> - int(1) - } - [40]=> - string(1) "=" - [41]=> - array(3) { - [0]=> - int(%d) + int(383) [1]=> string(1) " " [2]=> int(1) } - [42]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) "4" - [2]=> - int(1) - } - [43]=> - string(1) "&" - [44]=> - array(3) { - [0]=> - int(%d) - [1]=> - string(1) "2" - [2]=> - int(1) - } - [45]=> - string(1) ";" - [46]=> + [36]=> array(3) { [0]=> - int(%d) + int(382) [1]=> - string(1) " " + string(2) "?>" [2]=> int(1) } - [47]=> +} +array(1) { + [0]=> array(3) { [0]=> - int(%d) + int(314) [1]=> - string(2) "?>" + string(67) "" [2]=> int(1) } @@ -970,7 +290,7 @@ array(1) { [0]=> array(3) { [0]=> - int(%d) + int(314) [1]=> string(17) "wrong syntax here" [2]=>