2012-03-28 58 views
0

我需要使用return函数显示来自函数的另一页的内容。 这样做的最好方法是什么?PHP如何从函数()使用返回值显示另一页的内容

说我有file.php。在另一个页面的脚本中,我想调用一个函数并返回file.php的内容。

例如:

myFunction() { 
    $page = WHAT('file.php'); 
    return $page; 
} 

代替 'WHAT' 用什么?我试过包括,因为这是我所知道的,但它在这里不起作用。

附加注释:这用于Drupal模块。如果我使用$page = 'insert code here'; return $page;,管理主题/菜单显示为正常 - 但如果我使用$page = include('file.php');,则不会显示,因为该功能在看到'include'时甚至不使用返回。

+0

你需要'file.php'源代码吗?尝试[file_get_contents()](http://php.net/manual/en/function.file-get-contents.php) – safarov 2012-03-28 06:55:23

+0

包括确实返回,否则它会输出。输出可以通过输出缓冲“返回”。 http://php.net/ob_start – hakre 2012-03-28 06:57:01

+0

我其实已经想通了 - 但也许我会离开这个以防其他人需要知道。我使用: $ page = file_get_contents('file.php',FILE_USE_INCLUDE_PATH); \t return $ page; – nitsuj 2012-03-28 06:57:56

回答

1
  1. 文件使用的代码或内容:file_get_contents

  2. 另一个PHP页面的即时结果,你可以尝试ob_startob_get_clean

它会聚集在内存中包含的文件输出,以后你可以收集输出变量,清洁内存,或直接显示输出。

,如:

myFunction(){ 
    ob_start(); 
    include('file.php'); 
    $page = ob_get_clean(); 
    return $page; 
} 
+0

file_get_contents正是我所需要的。 – nitsuj 2012-03-28 20:12:48

-1

你的意思是要返回file.php的源代码不解析呢? 如果是的话,fopen和fread是你的朋友。

function yourFunction() { 
    $filehandle = fopen('file.php', "r"); 
    $filecontent = fread($filehandle, filesize($filename)); 
    fclose($file_handle); 

    return $filecontent; 
} 
0

使用$page = file('file.php'); 这将返回一个包含代码的每一行的阵列。

function myFunction() { 
    $page = file('file.php'); 
    return $page; 
} 

然后,你可以这样做:

$myPage = myFunction(); 
foreach($myPage as $line => $code){ 
    echo $code; 
} 
0

您可以使用curl检索另一个页面内容

<?php 
myFunction() 
{ 
    $ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "file.php"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$output = curl_exec($ch); 
curl_close($ch); 
return $output 
} 

>

0

试试这个

function foo(){ 
    ob_start(); 
    include('file.php'); 
    $page = ob_get_clean(); 
    return $page; 
} 
? 210
相关问题