簡體   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