繁体   English   中英

php代码以加载http URL的页面源

[英]php code to load page source of http URL

我正在尝试找到可在屏幕上加载URL源页面的PHP代码-实际上,我正在尝试做更多事情,但这是我希望以一种可靠的方式实现的第一步。 大多数帖子都说这已被要求并回答了几次,但对我而言似乎没有可靠的方法,并且大多数帖子都已过时。 最重要的是,我对PHP或任何Web编程都非常陌生。 无论如何,我确实找到了一些使用cURL,DOM的代码,或者只是可以使用但对PHP版本非常敏感的直接函数。 PHP 5.2、5.3、5.5和5.6是我的托管服务提供的版本。 在某些版本中工作的页面会本身或以不显示图像的“项目符号”方式加载(显示)URL页面,但是当我们在任何网页上执行“查看页面源代码”时,看起来都不像html文档。 所以我的问题是,这根本不可能吗?或者我在这里错过了什么吗? 回显页面但不作为页面源的DOM代码之一,而且仅在5.2和5.5中是:

<?php
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTMLFile('http://www.cisco.com/');
echo $dom->saveHTML();
?>

我的另一个重要需求之一是我的PHP代码至少现在可以在5.3中运行,但是如果可能的话,他们希望em在5.2到5.5中运行。 有指针吗?

问题是当您回显HTML时,浏览器会将其解释为HTML。 如果要将其视为“源”,则需要转义HTML:

echo htmlspecialchars($dom->saveHTML());

或将内容类型设置为文本:

header("Content-Type:text/plain");
echo $dom->saveHTML();

您可以用适当的HTML实体替换<> ,这样源将显示在屏幕上,而不是被浏览器解析为源:

echo str_replace('>', '&gt;', str_replace('<', '&lt;', $dom->saveHTML()));

或者echo htmlspecialchars($dom->saveHTML()); 哪个更干净...但是以上内容至少让您了解了htmlspecialchars实际在做什么

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM