【问题标题】:How to echo iframe with variable如何使用变量回显 iframe
【发布时间】:2013-05-23 19:07:14
【问题描述】:

我正在抓取一些网站并保存数据,然后像这样回显数据:

echo $html->save();

$html 部分是保存完整网站的变量。我想在 iframe 中回显整个页面,通常我会放一个源 src="file.php?url=http://somewebsite.com" 如何回显变量而不是包括 iframe:

echo '<iframe src="$html->save()"></iframe>'; 

这在某种程度上是如何完成的,还是我完全是这样的?

我像这样使用 simple-html-dom 和 CURL:

require_once('simple_html_dom.php');
require_once('url_to_absolute.php');



$url = $_GET['url'];

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $curl_scraped_page = curl_exec($ch);

    $html = new simple_html_dom();
    $html->load($curl_scraped_page, true, false);
    


foreach($html->find('a') as $a) {
    $a->href = url_to_absolute($url, $a->href);
}






echo $html->save();

$html->clear();

【问题讨论】:

  • 您愿意解释一下上下文吗?如果我帮助你做一些淘气的事情,我会很难过。
  • @George Cummins 刮痧没有什么不好的。我正在抓取一个新闻网站(合法),并希望在 iframe 中显示内容。但是,与其在 HTML 页面中使用常规 iframe,我更愿意回显 iframe(及其内容)。
  • $html-&gt;save() 是否返回 HTML 数据?如果是这样,这可能会有所帮助:stackoverflow.com/q/6102636
  • 为什么人们投反对票..??非常有用的问题..Google 上没有..

标签: php variables iframe


【解决方案1】:

创建一个名为 magicalbuffer.php 的文件。在它和 iframe 上进行所有保存和抓取:

<iframe src="magicalbuffer.php?parameterToPassToScrapper=valueToPassToScrapper"></iframe>

据此answer

printf('<iframe src="data:text/html;base64,%s"></iframe>', base64_encode($html->save()));

【讨论】:

  • 我想回显 iframe(不是 iframe 中带有参数的 php 文件)
  • 在该文件中,您应该回显您的 HTML。
  • 谢谢,但我得到了像这样的“一些奇怪的纯文本”++ ++ ++ ++ ++ ++ ++ ++ ++ ++var+context++=+{ ++++'dc_params'+:+'', ++++'category'+:+'home', ++++'stir_webdir'+:+'voorpagina', ++++'article_id'+:+'', ++++'article_name'+:+'', ++++'article_author'+:+'' ++}; 绝对不是我正在抓取的 html 页面:)
  • 我在数据类型中犯了一个错误,所以我用base64更新了:P
【解决方案2】:

要回显抓取的数据,请勿使用 iframe。相反,将数据回显到适当的容器中,例如 div:

echo '<div>' . $html->save() . '</div>';

如果您希望避免将 HTML 封装在 PHP 中,请执行以下操作:

?>
<div><?php echo $html-save(); ?>"></div>
<?php

这通常更简洁,更容易排除故障,尤其是当您在脚本中生成大量 HTML 时。

【讨论】:

  • 感谢您的输入,但第一个和第二个代码不起作用。我不能在我的项目中使用最后一个代码。我已经更新了我的问题。
  • 请定义“不起作用”。你有错误吗?输出错误? $html 包含什么内容?
  • 我得到一个没有任何内容的“空白”iframe
  • iframe 不适合回显抓取的内容。它们只能采用 URL 参数。然后浏览器在渲染时加载 URL。
  • 浏览器无法正确呈现多个&lt;html&gt;&lt;body&gt; 元素。如果要按原样显示 HTML,可以将内容转储到 &lt;textarea&gt;。如果要渲染页面,可以使用 iframe,但需要将 URL 指定为 src 属性,而不是抓取数据。这会提示浏览器开始将 iframe 的内容呈现为单独的文档。
猜你喜欢
  • 2018-08-30
  • 2013-07-23
  • 1970-01-01
  • 2012-01-28
  • 2017-05-21
  • 2019-04-12
  • 2014-02-23
  • 1970-01-01
  • 2019-05-31
相关资源
最近更新 更多