Require_once变量

时间:2010-05-13 21:15:23

标签: php file

我想调用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;
?>

3 个答案:

答案 0 :(得分:27)

  

有可能吗?

是的,但您需要在所需文件中执行明确的return

//test.php

<? $result = "Hello, world!"; 
  return $result;
?>

//index.php

$test = require_once('test.php');  // Will contain "Hello, world!"

这很少有用 - 检查Konrad的基于输出缓冲区的答案,或亚当的file_get_contents - 它们可能更适合您想要的。

答案 1 :(得分:25)

“结果”可能是一个字符串输出?

在这种情况下,您可以使用ob_start缓冲所述输出:

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.
…
?>

答案 2 :(得分:3)

file_get_contents将获取该文件的内容。如果它位于同一服务器上并由path(而不是url)引用,则将获得test.php的内容。如果它是远程的或由url引用,它将获得脚本的输出。