Bug #75850 [Opn]: Incorrect PHAR stub parsing with __halt_compiler() using implied semicolon

From: Date: Sat, 20 Jan 2018 09:41:03 +0000
Subject: Bug #75850 [Opn]: Incorrect PHAR stub parsing with __halt_compiler() using implied semicolon
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-213629@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=75850&edit=1 ID: 75850 Updated by: requinix@php.net Reported by: anrdaemon at freemail dot ru -Summary: Incorrect PHAR stub parsing +Summary: Incorrect PHAR stub parsing with __halt_compiler() using implied semicolon Status: Open Type: Bug Package: PHAR related Operating System: unrelated PHP Version: 7.1.13 Block user comment: N Private report: N New Comment: ?> does imply ; however the Phar stub docs http://php.net/manual/en/phar.fileformat.stub.php require "that it conclude with __HALT_COMPILER();". Indeed, Phar internally looks for that exact (case-insensitive) string. This could be a request to support dropping the semicolon, but changing the message is certainly easy enough. Previous Comments: ------------------------------------------------------------------------ [2018-01-20 09:21:45] anrdaemon at freemail dot ru Description: ------------ Unable to use stub with "?>" token present but ";" omitted after __halt_compiler(). According to PHP parsing rules, "?>" implies ";". (In other words, the stub itself executes cleanly, which makes it extra hard to realize the source of confusion.) At the very least, the error message could be clearer. Test script: --------------- <?php (new Phar("test.phar"))->setStub("<?php __halt_compiler()?>"); Expected result: ---------------- A test.phar example created. Actual result: -------------- PHP Fatal error: Uncaught PharException: illegal stub for phar ".../test.phar" in .../case2.php:3 Stack trace: #0 .../case2.php(3): Phar->setStub('<?php __halt_co...') #1 {main} thrown in .../case2.php on line 3 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=75850&edit=1

« previous php.bugs (#213629) next »