如何在加载后解析当前的PHP文件?

时间:2014-06-18 22:16:48

标签: php parsing simple-html-dom

我有一个php页面,它接收POST个属性。然后根据这些属性呈现此页面。我想从收到的属性中完全填充后,获取php页面的源代码。在html解析器解析后,此页面将是一个简单的php代码。我已提到file_get_contentsPHP Simple HTML DOM Parser,但无法找到任何可接受的答案。

我想要的是解析后的原始html代码为PHP Parser

示例

echo "<p>Hi<p>"

页面将返回

<p>Hi</p>

我想要这个输出如上。

3 个答案:

答案 0 :(得分:1)

您需要使用PHP的output control functions来获取PHP生成的输出。

示例:

<?php

// From here on, keep all output in a buffer
ob_start();

// Output whatever you want
echo "<h1>Hello World!</h1>" . PHP_EOL;
echo "<p>How're you doin' today?</p>";

// Store the contents of the buffer in $output
$output = ob_get_contents();

// Clear the buffer and stop buffering the output
ob_end_clean();

// Show the output we caught using the buffer
var_dump($output);

?>

<强>输出:

string(52) "<h1>Hello World!</h1>
<p>How're you doin' today?</p>"

答案 1 :(得分:1)

您需要使用POST方法配置以下选项并提供POST参数:

<?php
// Create a stream
$opts = array(
  'http'=>array(
    'method'=>"POST",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

// Open the file using the HTTP headers set above
$file = file_get_contents('http://www.example.com/', false, $context);
?>

卷曲也可能是一个很好的选择......

答案 2 :(得分:1)

带输出缓冲的HTML特殊字符:

<?php
ob_start();
echo "<h1>Heading</h1><br>\n";
echo "<p>Randomsampletext</p>";
$output = ob_get_contents();
ob_end_clean();

您可以使用htmlspecialchars($output);输出在php脚本中生成的原始HTML,或者您可以对$ output变量执行任何操作,例如echo it等。

将显示原始HTML:

<h1>Heading</h1>
<p>Randomsampletext</p>