停止php处理文件

Jon*_*mok 7 php

有没有办法让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().


Mr.*_*pik 5

我相信您需要做的就是写入return 0;(或任何其他值),PHP 将停止解析此文件并返回到调用它的任何内容。当您需要在一个文件中停止执行但不想die()exit()完全停止时,这很有用。

  • 据我了解,它并没有真正停止*解析*文件,而是在它到达`return`时停止*执行*它 (2认同)

Amb*_*ber 3

您可以使用exit关键字告诉 PHP 完成对文件的处理。

  • 这个答案是完全错误的。`exit()`函数仅停止**执行**,而不是**解析**。 (7认同)