将文件内容包含到插件(ob_start();;Include;ob_get_lean())中,但不包含<EOT

时间:2011-08-21 作者:Saif Bechan

我正在编写一个需要大量html的插件。现在,它的设置方式正在发挥作用。

return <<<EOT <html> EOT;
但我想将该文件拆分为可以包含的不同php文件。现在我尝试了这个,但它不起作用:

ob_start();
include(plugin_dir_url( __FILE__ ).\'file.php\');
return ob_get_clean();
知道怎么做吗?

============================
EDIT

好的,谢谢Chris Carson,我发现了小错误,我将代码更改为:

ob_start();
include(plugin_dir_path( __FILE__ ).\'/file.php\');
return ob_get_clean();
除了一个小问题外,现在一切正常。

在前面的代码中,我使用了如下内容:

$variable = \'Hello!\';

return <<<EOT
    <span>{$variable}</span>
EOT;
这将在html中生成以下内容:

<span>Hello!</span>
但现在:

$variable = \'Hello!\';

ob_start();
include(plugin_dir_path( __FILE__ ).\'/file.php\');
return ob_get_clean();
这只是打印

<span>{$variable}</span>
任何让代码处理变量的方法。

1 个回复
最合适的回答,由SO网友:Chris Carson 整理而成

当包含文件时,您不需要URL,而是需要文件系统路径。所以

include(dirname(__FILE__) . "/path/to/myfile.php");
记住将第一个正斜杠插入/path/to/myfile.php, 自从dirname 不包括尾部斜杠。

结束

相关推荐