AgA
AgA

Reputation: 2126

Unable to download URL using Curl

I'm trying to download a URL : http://es.extpdf.com/nagore-pdf.html using the following code. But I'm getting statuscode as 0 in return. But when accessing it from : http://web-sniffer.net/ it shows 301 redirected. My code seems to be working fine for 301 redirected URLs too.

What could be the problem?

<?php


print disavow_download_url("http://es.extpdf.com/nagore-pdf.html");

function disavow_download_url($url) {

    $custom_headers = array();
    $custom_headers[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
    $custom_headers[] = "Pragma: no-cache";
    $custom_headers[] = "Cache-Control: no-cache";
    $custom_headers[] = "Accept-Language: en-us;q=0.7,en;q=0.3";
    $custom_headers[] = "Accept-Charset: utf-8,windows-1251;q=0.7,*;q=0.7";

    $ch = curl_init();
    $useragent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1";
    curl_setopt($ch, CURLOPT_USERAGENT, $useragent); // set user agent
    curl_setopt($ch, CURLOPT_URL, $url);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
    //curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $custom_headers);

    //these two from https
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);


    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10); //timeout in seconds

    $txResult = curl_exec($ch);

    $statuscode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    print "statuscode=$statuscode\n";

    print "result=$txResult\n";


}

Upvotes: 1

Views: 57

Answers (1)

Sabuj Hassan
Sabuj Hassan

Reputation: 39355

The url is accessible from USA, not from your region. It worked for the web-sniffer because their server is hosted at USA(or somewhere which region is allowed by the extpdf).

I have used an USA proxy with the curl and it returned me data.

curl_setopt($ch, CURLOPT_PROXY, "100.9.90.1:3128"); // change IP, Port

Upvotes: 1

Related Questions