我想调用require_once("test.php"),但不显示结果,并将其保存到变量中,如下所示:
$test = require_once('test.php');
//some operations like $test = preg_replace(…);
echo $test;
解决方案:
test.php
<?php
$var = '/img/hello.jpg';
$res = <<<test
<style type="text/css">
body{background:url($var)#fff !important;}
</style>
test;
return $res;
?>
main.php
<?php
$test = require_once('test.php');
echo $test;
?>
发布于 2010-05-14 05:17:06
这有可能吗?
可以,但您需要在所需的文件中执行显式return
:
//test.php
<? $result = "Hello, world!";
return $result;
?>
//index.php
$test = require_once('test.php'); // Will contain "Hello, world!"
这很少有用-检查Konrad的基于输出缓冲区的答案,或者adam的file_get_contents
答案-它们可能更适合你想要的。
发布于 2010-05-14 05:16:34
“结果”大概是一个字符串输出?
在这种情况下,您可以使用来缓冲上述输出:
ob_start();
require_once('test.php');
$test = ob_get_contents();
从编辑后的问题中编辑看起来更像是您想在包含的文件中包含一个函数。在任何情况下,这都可能是(很多!)更干净的解决方案:
<?php // test.php:
function some_function() {
// Do something.
return 'some result';
}
?>
<?php // Main file:
require_once('test.php');
$result = test_function(); // Calls the function defined in test.php.
…
?>
发布于 2010-05-14 05:17:05
file_get_contents将获取该文件的内容。如果它在同一台服务器上,并且由路径(而不是url)引用,则会得到test.php的内容。如果它是远程的或被url引用,它将获得脚本的输出。
https://stackoverflow.com/questions/2830366
复制相似问题