gpt4 book ai didi

php - 如何忽略包含 php 的第一行?

转载 作者:行者123 更新时间:2023-12-04 02:23:57 26 4
gpt4 key购买 nike

我有一个 php 脚本,它可以独立于命令行运行,所以它的第一行是 #!/usr/bin/env php。但是,我还有另一个脚本,它可以自动运行第一个。它通过调用 include 'example.php' 来完成此操作,除了它会将第一行输出为文本之外。

如何让 include 跳过第一行?到目前为止,我能想到的唯一选择是将整个内容包装在输出缓冲区中,然后修剪第一行,但这有很多问题。替代方案,例如使用 exec() 模拟从命令行运行第二个脚本,或读取整个文件并使用 eval() 对其进行评估,两者看起来都不错糟糕的解决方案。

有没有办法告诉 php,“包含这个文件但不输出第一行”?

我知道我可以删除 shebang 并在我需要使用它时使用 php script.php 运行脚本,这在这种特定情况下没问题,但我仍然想知道如果有替代的通用方法,则可以忽略第一行(或第一 X 行)。

最佳答案

IMO 带有 shebang 的脚本非常明确地是命令行的“前端”,首先不应包含在其他脚本中,因为它包含特定于处理 CLI 交互的代码(解析传递的参数等).将该脚本中的可重用代码分离到一个库文件中,然后将该文件包含在 shebang 脚本和其他脚本中可能更有意义。

即,代替:

foo.php:

#!/usr/bin/php
// some code

bar.php:

include 'foo.php';

你这样做:

lib.php:

// some code

foo.php:

#!/usr/bin/php
include 'lib.php';

bar.php:

include 'lib.php';

关于php - 如何忽略包含 php 的第一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24571084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com