我创建了一个网站,我可能没有像我应该那样做,但我当时是PHP新手。因此,为了省去尝试重新编写脚本以在我的网站上显示照片的许多挫折,我需要运行一个* .php文件,并在输入名为“$ html”的var时输出。我知道这可能听起来很奇怪,但这就是我的需要。
从index.php里面,我包括photos.php;在photos.php中,我需要使用名为photos_page.php的脚本的输出声明$ html;
例如:
$html = parse_my_script("../photos_page.php");
谢谢
答案 0 :(得分:10)
<强>答案:强> 为此,您可以使用PHP的Output buffering/control。这是一些获取脚本输出并返回它的简单函数:
<强>代码:强>
使用的东西:
ob_start()
ob_get_clean()
is_readable()
function getScriptOutput($path, $print = FALSE)
{
ob_start();
if( is_readable($path) && $path )
{
include $path;
}
else
{
return FALSE;
}
if( $print == FALSE )
return ob_get_clean();
else
echo ob_get_clean();
}
<强>用法:强>
$path = '../photos_page.php';
$html = getScriptOutput($path);
if( $html === FALSE)
{
# Action when fails
}
else
{
echo $html;
}
答案 1 :(得分:2)
您需要尝试file_get_contents
$html = file_get_contents("http://www.yourwebsite.com/pages/photos_page.php");
//this will not work since it won't run through web server
//$html = file_get_contents("../photos_page.php");
答案 2 :(得分:2)
这应该可以解决问题:
ob_start();
require('../photos_page.php');
$html = ob_get_contents();
ob_end_clean();
答案 3 :(得分:1)
您应该使用file_get_contents("http://yourdomain.com/path/to/photos_page.php")
。
但是如果我是你,我会这样做:
<强> photos_page.php 强>
<?php
function get_photos_html() {
$html = // generate html
return $html;
}
?>
<强> main_file.php 强>
<?php
include('../photos_page.php');
$html = get_photos_html();
?>
答案 4 :(得分:1)
您可以使用output buffering。这会将通常发送到客户端的所有输出放入缓冲区,然后您可以检索该缓冲区:
ob_start();
include '../photos_page.php';
$html = ob_get_contents();
ob_end_clean();
如果您愿意,可以将此功能放入一个函数中,使其按照您的描述工作:
function parse_my_script($path)
{
ob_start();
include $path;
$html = ob_get_contents();
ob_end_clean();
return $html;
}
当然,这假设您所包含的文件不需要使用全局变量。
有关更多信息,请查看所有输出控制功能:
答案 5 :(得分:1)
输出缓冲会将输出文本保存在内存中,而不是实际将其输出到响应中。
首先,通过调用ob_start()
函数创建一个缓冲区。完成将输出存储在缓冲区中后,调用ob_get_clean()
以返回缓冲区内容并清除缓冲区。
ob_start();
include "../photos_page.php";
$html = ob_get_clean();
答案 6 :(得分:0)
我猜你发布的是伪代码。
您之前编写的代码不能再使用,但不能再使用。我会重写你需要的部分并创建一些函数,甚至可以用来获得你需要的任何类。
答案 7 :(得分:0)
您想要查看该方法 ob_start()和ob_flush(),ob_get_contents()等。 http://us.php.net/manual/en/ref.outcontrol.php
这将允许您将PHP文件中的数据输出到特定变量中。
你当然应该考虑改写:)
基本上是这样的:
ob_start();
include('yourfile.php');
$html = ob_get_contents();
ob_end_clean();
答案 8 :(得分:0)
如果您的photos_page.php
的工作方式如下:
<?php
// very basic code
$img = "/path/to/my/image.jpg";
echo '<img src="' . $img . '">' . PHP_EOL;
?>
然后你可以使用:
$html = file_get_contents('http://mysite.com/photos_page.php');
但实际上,你应该重新编写代码,这样你就不必这样做了。
答案 9 :(得分:0)
如果$ path返回一个值,您也可以执行 :
$path = '/path/to/your/script.php';
$html = return include $path;