如何在不调用的情况下执行包含的脚本?

时间:2012-02-09 00:36:14

标签: php include

我有一个PHP脚本,并且在某个时刻我想要包含另一个脚本,但我希望脚本能够像原始文件一样运行,而不必通过函数调用类:

if(strpos('X-Mailer: Microsoft Outlook', $raw_headers)) {
include 'outlookImageParse.php';
outlookImageParse($html_part);

但是,即使我将其定义为该文件中的函数并从原始文件中调用它,所包含的脚本也不起作用。我已经使用过,require,require_once,include_once,但是没有一个像我想要的那样执行。怎么做才能得到我想要达到的目标?

2 个答案:

答案 0 :(得分:0)

当您include()(或要求等)时,脚本被视为直接删除到文件中,恰好是include所在的位置 - 请参阅以下示例。

file1.php

<?php
$var1 = 'hello';
$var2 = 123;

include('file2.php');

echo $var4; // echoes "bbq"

$var5 = 123456;
func1($var5); // echoes "Function! 123456"
?>

file2.php

<?php
echo $var1; // echoes "hello"

$var4 = 'bbq';
function func1 ($var)
{
    echo 'Function! ' . $var;
}
?>

答案 1 :(得分:0)

您指的是代码注入吗?您应该查看Best way to avoid code injection in PHP以获得最佳实践建议。我不知道它是否会有所不同,我也会把括号括在文件名中。