file_get_contents不适用于某些域

As a part of the requirement I need to find out whether a domain is parked or not. As there is no efficient way to find out this, I'm going to check the DOM for phrases like "Buy this domain", "may be for sale".. etc.

I found some parked domains which can be accessed through browser, but cannot able to get them using file_get_contents.

Example

$url = 'http://buythisdomain.com/'
$get = file_get_contents($url);

For the above got the following message at output.

Warning: file_get_contents(http://buythisdomain.com/): failed to open stream: HTTP request failed!

But able to access the same URL via browser.I tried fopen method too, but same result. Is there any way to achieve this?

Many sites, not only parked domains use some mechanism to block basic requests without valid browser headers.

Try to use stream context that send that required headers like a browser like this

$url = "http://buythisdomain.com/"
$context = stream_context_create(array(
    'http' => array(
        'method' => "GET",
        'header' =>
            "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
" .
            "Accept-Language: en-US,en;q=0.8
".
            "Keep-Alive: timeout=3, max=10
",
            "Connection: keep-alive",
        'user_agent' => "User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.66 Safari/535.11",
        "ignore_errors" => true,
        "timeout" => 3
    )
));
file_get_contents($url, false, $context);