PHP, как отобразить содержимое другой страницы из функции () с помощью return - PullRequest
0 голосов
/ 28 марта 2012

Мне нужно отобразить содержимое другой страницы из функции, используя return. Каков наилучший способ сделать это?

Скажи, что у меня есть file.php. В моем сценарии на другой странице я хочу вызвать функцию и вернуть содержимое файла file.php.

Например:

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

Что использовать вместо «ЧТО»? Я пытался включить, потому что это то, что я знаю, но здесь это не работает.

ДОПОЛНИТЕЛЬНЫЕ ЗАМЕЧАНИЯ: используется в модуле Drupal. Тема / меню администратора отображаются как обычно, если я использую $page = 'insert code here'; return $page; - но не если я использую $page = include('file.php');, потому что функция даже не использует возврат, когда видит 'include'.

Ответы [ 5 ]

1 голос
/ 28 марта 2012
  1. для кода или содержимого файла: file_get_contents

  2. для мгновенного результата другой php-страницы, вы можете попробовать ob_start и ob_get_clean.

Он соберет вывод включенного файла в память, а затем вы сможете собрать вывод в переменную и очиститьпамяти или просто показать вывод напрямую.

вроде:

myFunction(){
   ob_start();
   include('file.php');
   $page = ob_get_clean();
   return $page;
}
0 голосов
/ 28 марта 2012

Попробуйте это

function foo(){
   ob_start();
   include('file.php');
   $page = ob_get_clean();
   return $page;
}
0 голосов
/ 28 марта 2012

Вы можете использовать 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 голосов
/ 28 марта 2012

Использование $page = file( 'file.php' ); это вернет массив, содержащий каждую строку кода.

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

Тогда вы можете сделать:

$myPage = myFunction();
foreach( $myPage  as $line => $code){
    echo $code;
}
0 голосов
/ 28 марта 2012

Вы хотите вернуть исходный код файла file.php без его анализа?Если да, то fopen и fread ваши друзья.

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

    return $filecontent;
}
...