有没有办法让php停止处理文件,并让它只与它已经解析的部分一起使用.我的意思是这样的:
<some data here>
<?php phpinfo(); [IS THERE ANY THING I CAN PUT HERE] ?>
<more data>
[IS THERE ANY THING I CAN PUT HERE]
<?HOW CAN I MAKE PHP NOT PARSE THIS?>
Run Code Online (Sandbox Code Playgroud)
无论如何,在第一个php部分之后让php忽略数据?
Pas*_*TIN 10
另一种解决方案可能是使用__halt_compiler:
停止编译器的执行.这对于在PHP脚本中嵌入数据非常有用,例如安装文件.
数据开始的字节位置可以由
__COMPILER_HALT_OFFSET__常量确定,该 常数仅__halt_compiler()在文件中存在时才定义 .
当您需要将PHP和(可能是二进制)数据嵌入到单个文件中时,Phar存档的典型用法是,PHP代码需要能够访问该数据.
实际上有一点不同:这段代码:
blah blah
<?php phpinfo(); ?>
glop glop
<?php exit(); ?>
<?HOW CAN I MAKE PHP NOT PARSE THIS?>
Run Code Online (Sandbox Code Playgroud)
给我一个Parse error: syntax error, unexpected T_STRING
(可能是因为我short_open_tag启用了,我想)
这一个:
blah blah
<?php phpinfo(); ?>
glop glop
<?php __halt_compiler(); ?>
<?HOW CAN I MAKE PHP NOT PARSE THIS?>
Run Code Online (Sandbox Code Playgroud)
工作正常 - 这个无效的PHP代码在调用之后__halt_compiler().
我相信您需要做的就是写入return 0;(或任何其他值),PHP 将停止解析此文件并返回到调用它的任何内容。当您需要在一个文件中停止执行但不想die()或exit()完全停止时,这很有用。