Removing CURLOPT_FOLLOWLOCATION produces empty output

Links for php scripts

Moderators: egami, macek, gesf

Post Reply
New php-forum User
New php-forum User
Posts: 17
Joined: Sun Apr 01, 2012 11:52 pm

Mon Sep 24, 2012 12:11 am

this weekend the parsing of a web page stopped working perhaps due to a restyling of the site. The page is:

and I m trying to parse it with the following function:

Code: Select all

function atac_get_html($url, $language){
$url=''; //manual forcing
// Create DOM from URL or file

if (!isset($_SESSION['ckfile'])) {
echo "language".$languageUrl;
$ckfile = tempnam ("/tmp", "CURLCOOKIE");
/* STEP 2. visit the homepage to set the cookie properly */
$ch = curl_init ($languageUrl);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$output = curl_exec ($ch);
//echo "outputInit=".$output."
/* STEP 3. visit cookiepage.php */
$ch = curl_init ($url);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$output = curl_exec ($ch);
curl_close( $ch );
echo $url;
echo "output=".$output;
return str_get_html($output);
Yet, when I execute it, instead of going to the url page, it goes to the home. What is quite peculiar is that, if I remove the latter curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true), I have an empty output like the page had a refresh setting that does not manifest itself when connecting by a browser but it does if trying to parse it! I am totally puzzled and unfortunately that piece of code is at the core of an iOS app I have on production and so I am also quite in a hurry.
Could someone please help,

Fabrizio Bartolomucci

Post Reply