Bug #78604 [Com]: token_get_all() does not properly tokenize FOO<?php with short_open_tag=0

[email protected] ("[email protected]")
Newsgroups php.bugs,php.qa
Message-ID <[email protected]>
Edit report at https://bugs.php.net/bug.php?id=78604&edit=1

 ID:                 78604
 Comment by:         [email protected]
 Reported by:        [email protected]
 Summary:            token_get_all() does not properly tokenize FOO<?php
                     with short_open_tag=0
 Status:             Open
 Type:               Bug
 Package:            Testing related
 PHP Version:        7.4.0RC2
 Block user comment: N
 Private report:     N

 New Comment:

Evaluation is also affected

» php --no-php-ini  -d short_open_tag=0 -a
Interactive shell

php > eval('?>FOO<?php');
FOO<?php


Previous Comments:
------------------------------------------------------------------------
[2019-09-28 14:09:51] [email protected]

Description:
------------
Note that this happened for me when php was configured with short tags, both for the latest php 7.4 and 8.0 (e.g. this is what travis/compile.sh would do)

ext/tokenizer/tests/php_tag_only.phpt would fail if php.ini had short_open_tags=0

tested with php 7.4 NTS, ZTS, and php 8.0 NTS (compiled within the last month)

Test script:
---------------
» php --no-php-ini  -d short_open_tag=0 -a                   
Interactive shell

php > var_export(token_get_all('FOO<?php'));
array (
  0 => 
  array (
    0 => 313,
    1 => 'FOO<?php',
    2 => 1,
  ),
)
php > echo PHP_VERSION;
7.4.0-dev


Expected result:
----------------
Outputs two tokens, one for FOO, and one for <?php

Actual result:
--------------
Outputs a single token with FOO<?php


------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=78604&edit=1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.