0

I have been using the following code to get html content of a webpage

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

However, file_get_contents can't open the URLs in the following form, but if I type them in the address bar of a web browser, these URLs open fine.

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/

Can you please tell me what can I used to open above URLs in php?

Following doesn't work

$url = "www.etsy.com/listing/118415624/not-my-small-diary-17-true-high-school";
$html = file_get_contents($url);
1
  • 2
    Check allow_url_fopen in your php.ini Commented Apr 20, 2013 at 8:42

4 Answers 4

4

Unless you do not prefix with http:// PHP won't know that you want a webpage and tries on the file-system:

$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));
}

In development, enable all Errors, Warnings and Notices. PHP normally tells you about such problems then and where they appear.

Full example (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);
}

Output:

|- <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>
Sign up to request clarification or add additional context in comments.

2 Comments

Also the fact that The function returns the read data or FALSE on failure. They should also check for the return value being FALSE
Yes, the general rule to validate a function return value is crucial for error-checking with file_get_contents. Will highlight that, good point @HankyPankyㇱ!
2

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

Comments

1

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

you use http in url.

Comments

0

try this it is working fine

$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;

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.