2012-03-28 55 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
相關問題