PHP:作为字符串包含,不带输出缓冲


PHP: Include as a string without output buffering?

假设存在if语句:

if (stripos($names, "jack") !== false || stripos($names, "bob") !== false) {
 echo "Jack or Bob found.";
}

如果我想更改if参数,我希望在多个页面上使用此语句,而不必编辑每个页面中的if语句。

我试过这个:

$contents = file_get_contents('names.php');
if ($contents) {
 echo "Jack or Bob found.";
}
names.php
<?php
 $return_me = stripos($names, "jack") !== false || stripos($names, "bob") !== false;
 return $return_me;
?>

但它不起作用。我试图在不使用输出缓冲的情况下完成这项工作,因为它会破坏我的整个脚本。有人知道解决方案吗?

我建议您在可以包含的实用程序文件中为此编写一个函数。

utils.php.inc

function check_found_user($names) {
    return (stripos($names, "jack") !== false || stripos($names, "bob") !== false);
}

您的其他源代码文件

require_once('utils.php.inc');
if ( check_found_user($names) ) {
    echo "Jack or Bob found.";
}