2013-04-20 53 views
0

我一直在使用下面的代码获取网页的HTML内容PHP的file_get_contents不能得到HTML代码

$url = "http://mysmallwebpage.com/"; 
$html = file_get_contents($url); 

然而,file_get_contents无法打开以下形式的网址,但如果我键入他们在网络浏览器的地址栏中打开,这些URL可以打开。

www.etsy.com/listing/118415624/not-my-small-diary-17-true-high-school 
blog.al.com/birmingham-news-commentary/2012/11/naked_art_gallery_gives_back_t.html 
mysmallwebpage.com/ 

你能告诉我什么我可以用来打开上面的URL在PHP?

继不起作用

$url = "www.etsy.com/listing/118415624/not-my-small-diary-17-true-high-school"; 
$html = file_get_contents($url); 
+2

检查你的php.ini中的'allow_url_fopen' – 2013-04-20 08:42:56

回答

4

除非你不http:// PHP前缀不会知道你想要的网页,并尝试在文件系统上:

$url = "http://www.etsy.com/listing/118415624/not-my-small-diary-17-true-high-school"; 
$html = file_get_contents($url); 
if (FALSE === $html) { 
    throw new Exception(sprintf('Failed to open HTTP URL "%s".', $url)); 
} 

在发展,启用所有错误,警告和声明。 PHP通常会告诉你这些问题以及它们出现在哪里。

完整的示例(Demo):

<?php 
/** 
* PHP file_get_contents can't get html code 
* @link http://stackoverflow.com/q/16118385/367456 
*/ 
header('Content-Type: text/plain'); 
$url = "http://www.etsy.com/listing/118415624/not-my-small-diary-17-true-high-school"; 
$html = file_get_contents($url); 
if (FALSE === $html) { 
    throw new Exception(sprintf('Failed to open HTTP URL "%s".', $url)); 
} 

$xml = simplexml_import_dom(@DOMDocument::loadHTML($html), 'SimpleXMLIterator'); 
$tree = new RecursiveTreeIterator($xml); 

foreach($tree as $element => $line) { 
    printf("%s <%s>\n", $tree->getPrefix(), $element); 
} 

输出:

|- <head> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <title> 
| |- <meta> 
| |- <link> 
| |- <link> 
| |- <link> 
| |- <link> 
| |- <link> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <link> 
| |- <link> 
| |- <link> 
| |- <link> 
| |- <link> 
| |- <link> 
| |- <link> 
| |- <script> 
| |- <script> 
| |- <script> 
| |- <script> 
| |- <script> 
| |- <script> 
| |- <link> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| |- <meta> 
| \- <link> 
\- <body> 
    |- <div> 
    |- <noscript> 
    | \- <div> 
    | \- <p> 
    |  \- <a> 
    |- <script> 
    |- <div> 
    | |- <div> 
    | | |- <ul> 
    | | | |- <li> 
    | | | | \- <a> 
    | | | |- <li> 
    | | | | |- <a> 
    | | | | \- <span> 
    | | | |- <li> 
    | | | | |- <a> 
    | | | | \- <div> 
    | | | | |- <div> 
    | | | | | \- <div> 
    | | | | | \- <ul> 
    | | | | |  |- <li> 
    | | | | |  | \- <a> 
    | | | | |  |- <li> 
    | | | | |  | \- <a> 
    | | | | |  |- <li> 
    | | | | |  | \- <a> 
    | | | | |  |- <li> 
    | | | | |  | \- <a> 
    | | | | |  \- <li> 
    | | | | |  \- <a> 
    | | | | \- <span> 
    | | | |- <li> 
    | | | | |- <a> 
    | | | | \- <div> 
    | | | | |- <div> 
    | | | | | \- <div> 
    | | | | | \- <ul> 
    | | | | |  |- <li> 
    | | | | |  | \- <a> 
    | | | | |  |- <li> 
    | | | | |  | \- <a> 
    | | | | |  |- <li> 
    | | | | |  | \- <a> 
    | | | | |  \- <li> 
    | | | | |  \- <a> 
    | | | | \- <span> 
    | | | |- <li> 
    | | | | \- <a> 
    | | | |- <li> 
    | | | | \- <a> 
    | | | \- <li> 
    | | | \- <a> 
    | | \- <ul> 
    | | \- <li> 
    | |  \- <a> 
    | \- <div> 
    | |- <h1> 
    | | \- <a> 
    | |- <ul> 
    | | |- <li> 
    | | | \- <a> 
    | | \- <li> 
    | | \- <a> 
    | |- <input> 
    | |- <input> 
    | |- <input> 
    | |- <input> 
    | |- <input> 
    | |- <form> 
    | | |- <div> 
    | | | |- <input> 
    | | | |- <button> 
    | | | \- <div> 
    | | | \- <ul> 
    | | |- <input> 
    | | \- <input> 
    | \- <div> 
    |  \- <a> 
    |  \- <span> 
    |- <div> 
    | \- <div> 
    | |- <a> 
    | | \- <span> 
    | |- <ul> 
    | | |- <li> 
    | | | \- <a> 
    | | \- <li> 
    | | \- <a> 
    | \- <div> 
    |  |- <div> 
    |  | |- <div> 
    |  | | \- <p> 
    |  | |- <div> 
    |  | \- <form> 
    |  | |- <div> 
    |  | | \- <h2> 
    |  | |- <div> 
    |  | | |- <div> 
    |  | | | |- <a> 
    |  | | | | \- <span> 
    |  | | | \- <div> 
    |  | | |- <input> 
    |  | | |- <input> 
    |  | | |- <input> 
    |  | | |- <input> 
    |  | | \- <p> 
    |  | |- <div> 
    |  | | \- <span> 
    |  | |- <div> 
    |  | | |- <label> 
    |  | | |- <span> 
    |  | | |- <span> 
    |  | | \- <input> 
    |  | |- <div> 
    |  | | |- <label> 
    |  | | |- <span> 
    |  | | \- <input> 
    |  | |- <div> 
    |  | | |- <input> 
    |  | | |- <label> 
    |  | | |- <input> 
    |  | | |- <label> 
    |  | | |- <input> 
    |  | | \- <label> 
    |  | |- <hr> 
    |  | |- <div> 
    |  | | |- <label> 
    |  | | |- <span> 
    |  | | | |- <span> 
    |  | | | \- <span> 
    |  | | |- <span> 
    |  | | \- <input> 
    |  | |- <div> 
    |  | | |- <label> 
    |  | | |- <span> 
    |  | | \- <input> 
    |  | |- <div> 
    |  | | |- <label> 
    |  | | |- <span> 
    |  | | \- <input> 
    |  | |- <div> 
    |  | | |- <label> 
    |  | | |- <span> 
    |  | | |- <input> 
    |  | | |- <div> 
    |  | | | |- <span> 
    |  | | | \- <span> 
    |  | | \- <div> 
    |  | | |- <span> 
    |  | | \- <span> 
    |  | |- <hr> 
    |  | |- <p> 
    |  | | |- <a> 
    |  | | \- <a> 
    |  | |- <p> 
    |  | | |- <input> 
    |  | | |- <input> 
    |  | | |- <input> 
    |  | | |- <span> 
    |  | | | \- <span> 
    |  | | | \- <input> 
    |  | | \- <span> 
    |  | \- <div> 
    |  |  |- <input> 
    |  |  \- <label> 
    |  \- <div> 
    |  |- <div> 
    |  | \- <p> 
    |  \- <form> 
    |   |- <div> 
    |   | |- <label> 
    |   | |- <input> 
    |   | \- <span> 
    |   |- <div> 
    |   | |- <label> 
    |   | |- <input> 
    |   | \- <span> 
    |   |- <div> 
    |   | |- <input> 
    |   | \- <label> 
    |   |- <p> 
    |   | |- <input> 
    |   | |- <input> 
    |   | |- <input> 
    |   | |- <span> 
    |   | | \- <span> 
    |   | | \- <input> 
    |   | \- <span> 
    |   |- <hr> 
    |   |- <p> 
    |   | \- <a> 
    |   \- <p> 
    |   \- <a> 
    |- <div> 
    | \- <div> 
    | \- <div> 
    |- <script> 
    |- <script> 
    |- <div> 
    | \- <div> 
    | \- <p> 
    |  |- <strong> 
    |  |- <strong> 
    |  \- <strong> 
    |- <div> 
    | |- <ul> 
    | | |- <li> 
    | | | |- <a> 
    | | | \- <span> 
    | | \- <li> 
    | | \- <a> 
    | \- <div> 
    | \- <div> 
    |  |- <div> 
    |  | |- <div> 
    |  | | |- <div> 
    |  | | | |- <input> 
    |  | | | |- <div> 
    |  | | | | \- <a> 
    |  | | | | \- <span> 
    |  | | | \- <div> 
    |  | | | |- <h3> 
    |  | | | \- <p> 
    |  | | |- <div> 
    |  | | | |- <h1> 
    |  | | | \- <p> 
    |  | | | \- <a> 
    |  | | |- <div> 
    |  | | | |- <div> 
    |  | | | | \- <a> 
    |  | | | | \- <img> 
    |  | | | \- <div> 
    |  | | | \- <a> 
    |  | | |- <div> 
    |  | | | |- <a> 
    |  | | | | \- <img> 
    |  | | | |- <a> 
    |  | | | | \- <img> 
    |  | | | |- <a> 
    |  | | | | \- <img> 
    |  | | | |- <a> 
    |  | | | | \- <img> 
    |  | | | \- <a> 
    |  | | | \- <img> 
    |  | | |- <div> 
    |  | | | \- <div> 
    |  | | | |- <br> 
    |  | | | \- <p> 
    |  | | |  |- <br> 
    |  | | |  \- <a> 
    |  | | |- <div> 
    |  | | | |- <h3> 
    |  | | | | \- <span> 
    |  | | | |- <h4> 
    |  | | | \- <table> 
    |  | | | |- <tr> 
    |  | | | | |- <th> 
    |  | | | | |- <th> 
    |  | | | | \- <th> 
    |  | | | |- <tr> 
    |  | | | | |- <td> 
    |  | | | | |- <td> 
    |  | | | | | |- <span> 
    |  | | | | | |- <span> 
    |  | | | | | \- <span> 
    |  | | | | \- <td> 
    |  | | | | |- <span> 
    |  | | | | |- <span> 
    |  | | | | \- <span> 
    |  | | | \- <tr> 
    |  | | |  |- <td> 
    |  | | |  |- <td> 
    |  | | |  | |- <span> 
    |  | | |  | |- <span> 
    |  | | |  | \- <span> 
    |  | | |  \- <td> 
    |  | | |  |- <span> 
    |  | | |  |- <span> 
    |  | | |  \- <span> 
    |  | | |- <div> 
    |  | | | |- <div> 
    |  | | | | |- <h3> 
    |  | | | | \- <ul> 
    |  | | | | |- <div> 
    |  | | | | | |- <p> 
    |  | | | | | | \- <span> 
    |  | | | | | \- <span> 
    |  | | | | |- <li> 
    |  | | | | | \- <span> 
    |  | | | | \- <li> 
    |  | | | |  \- <span> 
    |  | | | \- <div> 
    |  | | | |- <h3> 
    |  | | | \- <ul> 
    |  | | |  |- <li> 
    |  | | |  | \- <a> 
    |  | | |  \- <li> 
    |  | | |  \- <a> 
    |  | | |- <div> 
    |  | | | |- <ul> 
    |  | | | | |- <li> 
    |  | | | | | \- <a> 
    |  | | | | | \- <strong> 
    |  | | | | |  |- <span> 
    |  | | | | |  \- <span> 
    |  | | | | \- <li> 
    |  | | | | |- <div> 
    |  | | | | | \- <a> 
    |  | | | | \- <div> 
    |  | | | \- <div> 
    |  | | | |- <div> 
    |  | | | | |- <div> 
    |  | | | | | |- <h3> 
    |  | | | | | |- <p> 
    |  | | | | | |- <h3> 
    |  | | | | | \- <p> 
    |  | | | | \- <div> 
    |  | | | | |- <h3> 
    |  | | | | \- <p> 
    |  | | | |- <div> 
    |  | | | | \- <div> 
    |  | | | | |- <h3> 
    |  | | | | \- <div> 
    |  | | | |  |- <a> 
    |  | | | |  |- <a> 
    |  | | | |  \- <a> 
    |  | | | \- <div> 
    |  | | |  \- <ul> 
    |  | | |  |- <li> 
    |  | | |  \- <li> 
    |  | | |- <div> 
    |  | | | |- <h3> 
    |  | | | \- <div> 
    |  | | | \- <ul> 
    |  | | \- <script> 
    |  | |- <div> 
    |  | | |- <div> 
    |  | | | |- <div> 
    |  | | | | |- <div> 
    |  | | | | |- <div> 
    |  | | | | | |- <span> 
    |  | | | | | |- <span> 
    |  | | | | | |- <a> 
    |  | | | | | | \- <span> 
    |  | | | | | \- <span> 
    |  | | | | \- <div> 
    |  | | | \- <div> 
    |  | | | |- <div> 
    |  | | | |- <div> 
    |  | | | | \- <div> 
    |  | | | | \- <div> 
    |  | | | \- <div> 
    |  | | |  |- <div> 
    |  | | |  | \- <form> 
    |  | | |  | |- <input> 
    |  | | |  | |- <input> 
    |  | | |  | |- <input> 
    |  | | |  | |- <input> 
    |  | | |  | |- <input> 
    |  | | |  | \- <span> 
    |  | | |  |  \- <span> 
    |  | | |  |  \- <input> 
    |  | | |  \- <div> 
    |  | | |  \- <div> 
    |  | | |   |- <input> 
    |  | | |   |- <input> 
    |  | | |   |- <input> 
    |  | | |   \- <a> 
    |  | | |   \- <span> 
    |  | | |- <div> 
    |  | | | \- <p> 
    |  | | | |- <span> 
    |  | | | \- <span> 
    |  | | |  \- <span> 
    |  | | |- <script> 
    |  | | |- <div> 
    |  | | | |- <div> 
    |  | | | | |- <h2> 
    |  | | | | |- <ul> 
    |  | | | | | |- <li> 
    |  | | | | | | \- <span> 
    |  | | | | | | \- <a> 
    |  | | | | | \- <li> 
    |  | | | | |- <div> 
    |  | | | | | \- <div> 
    |  | | | | | |- <span> 
    |  | | | | | |- <div> 
    |  | | | | | | \- <a> 
    |  | | | | | | \- <img> 
    |  | | | | | |- <div> 
    |  | | | | | | \- <a> 
    |  | | | | | | \- <img> 
    |  | | | | | \- <div> 
    |  | | | | |  \- <a> 
    |  | | | | |  \- <span> 
    |  | | | | \- <ul> 
    |  | | | | |- <li> 
    |  | | | | | |- <input> 
    |  | | | | | \- <a> 
    |  | | | | | \- <span> 
    |  | | | | \- <li> 
    |  | | | |  \- <a> 
    |  | | | |  \- <span> 
    |  | | | |- <div> 
    |  | | | | |- <h2> 
    |  | | | | \- <div> 
    |  | | | | |- <div> 
    |  | | | | | \- <a> 
    |  | | | | | \- <img> 
    |  | | | | \- <ul> 
    |  | | | |  |- <li> 
    |  | | | |  | \- <a> 
    |  | | | |  |- <li> 
    |  | | | |  |- <li> 
    |  | | | |  | \- <a> 
    |  | | | |  |- <li> 
    |  | | | |  | \- <a> 
    |  | | | |  |- <li> 
    |  | | | |  | \- <a> 
    |  | | | |  \- <li> 
    |  | | | |  \- <a> 
    |  | | | |   \- <span> 
    |  | | | \- <div> 
    |  | | | |- <h2> 
    |  | | | |- <ul> 
    |  | | | | |- <li> 
    |  | | | | | |- <input> 
    |  | | | | | \- <a> 
    |  | | | | | |- <span> 
    |  | | | | | \- <span> 
    |  | | | | |- <li> 
    |  | | | | | \- <a> 
    |  | | | | | \- <span> 
    |  | | | | \- <li> 
    |  | | | | \- <a> 
    |  | | | |  |- <span> 
    |  | | | |  \- <span> 
    |  | | | |- <hr> 
    |  | | | |- <ul> 
    |  | | | | |- <li> 
    |  | | | | | |- <script> 
    |  | | | | | \- <a> 
    |  | | | | | |- <span> 
    |  | | | | | \- <span> 
    |  | | | | |- <li> 
    |  | | | | | |- <script> 
    |  | | | | | \- <a> 
    |  | | | | \- <li> 
    |  | | | | |- <like> 
    |  | | | | \- <script> 
    |  | | | |- <hr> 
    |  | | | \- <div> 
    |  | | |  \- <ul> 
    |  | | |  |- <li> 
    |  | | |  \- <li> 
    |  | | |   \- <a> 
    |  | | \- <div> 
    |  | | |- <div> 
    |  | | | |- <div> 
    |  | | | |- <div> 
    |  | | | | |- <span> 
    |  | | | | |- <span> 
    |  | | | | |- <a> 
    |  | | | | | \- <span> 
    |  | | | | \- <span> 
    |  | | | \- <div> 
    |  | | \- <div> 
    |  | |  |- <div> 
    |  | |  |- <div> 
    |  | |  | \- <div> 
    |  | |  | \- <div> 
    |  | |  \- <div> 
    |  | |  |- <div> 
    |  | |  | \- <form> 
    |  | |  | |- <input> 
    |  | |  | |- <input> 
    |  | |  | |- <input> 
    |  | |  | |- <input> 
    |  | |  | |- <input> 
    |  | |  | \- <span> 
    |  | |  |  \- <span> 
    |  | |  |  \- <input> 
    |  | |  \- <div> 
    |  | |   \- <div> 
    |  | |   |- <input> 
    |  | |   |- <input> 
    |  | |   |- <input> 
    |  | |   \- <a> 
    |  | |    \- <span> 
    |  | |- <script> 
    |  | |- <div> 
    |  | | \- <div> 
    |  | | |- <span> 
    |  | | \- <a> 
    |  | |  \- <span> 
    |  | \- <script> 
    |  |- <div> 
    |  \- <div> 
    |  |- <div> 
    |  | |- <div> 
    |  | | |- <h2> 
    |  | | \- <a> 
    |  | | \- <span> 
    |  | \- <form> 
    |  | |- <div> 
    |  | | |- <div> 
    |  | | |- <div> 
    |  | | |- <input> 
    |  | | |- <div> 
    |  | | |- <div> 
    |  | | | |- <label> 
    |  | | | \- <select> 
    |  | | | |- <option> 
    |  | | | |- <optgroup> 
    |  | | | \- <optgroup> 
    |  | | \- <div> 
    |  | | |- <label> 
    |  | | \- <input> 
    |  | \- <div> 
    |  |  |- <button> 
    |  |  \- <div> 
    |  |  \- <span> 
    |  \- <div> 
    |   \- <div> 
    |   |- <a> 
    |   | \- <span> 
    |   |- <h2> 
    |   \- <a> 
    |- <div> 
    |- <div> 
    | |- <p> 
    | |- <ul> 
    | | |- <li> 
    | | | \- <a> 
    | | |- <li> 
    | | | \- <a> 
    | | |- <li> 
    | | | \- <a> 
    | | |- <li> 
    | | | \- <a> 
    | | |- <li> 
    | | | \- <a> 
    | | |- <li> 
    | | | \- <a> 
    | | |- <li> 
    | | | \- <a> 
    | | |- <li> 
    | | | \- <a> 
    | | \- <li> 
    | | \- <a> 
    | |- <p> 
    | | |- <a> 
    | | | \- <span> 
    | | |- <a> 
    | | | \- <span> 
    | | |- <a> 
    | | \- <span> 
    | \- <script> 
    |- <script> 
    |- <script> 
    |- <div> 
    | \- <div> 
    | |- <div> 
    | | \- <h2> 
    | \- <div> 
    |  \- <div> 
    |  \- <a> 
    |   \- <span> 
    |- <script> 
    |- <script> 
    |- <script> 
    |- <script> 
    |- <script> 
    |- <script> 
    |- <script> 
    |- <noscript> 
    | \- <iframe> 
    |- <script> 
    |- <script> 
    |- <script> 
    |- <script> 
    |- <script> 
    |- <script> 
    |- <script> 
    |- <script> 
    |- <script> 
    |- <script> 
    |- <script> 
    |- <script> 
    |- <script> 
    |- <script> 
    \- <script> 
+0

还有这样一个事实,即该函数返回读取数据或FALSE失败。他们还应该检查返回值是否为假 – 2013-04-20 08:45:29

+0

是的,验证函数的一般规则返回值对于使用file_get_contents进行错误检查至关重要。将突出,好点@HankyPankyㇱ! – hakre 2013-04-20 08:46:31

+0

谢谢你的所有信息。 – 2013-04-20 09:01:40

2

使用http://"www.etsy.com/listing/118415624/not-my-small-diary-17-true-high-school"

0

试试这个它是工作的罚款

$url = "http://www.etsy.com/listing/118415624/not-my-small-diary-17-true-high-school"; 
$html = file_get_contents($url); 


echo "<pre>"; 
print_r($html); 
exit;