Re: cURL and response code 302 [message #182114 is a reply to message #182113] |
Thu, 11 July 2013 19:04 |
Arno Welzel
Messages: 317 Registered: October 2011
Karma:
|
Senior Member |
|
|
bill, 2013-07-11 16:51:
> On 7/10/2013 6:12 PM, Arno Welzel wrote:
>
>> if($resultcode == 302)
>> $redirect = curl_getinfo($ch, CURLINFO_REDIRECT_URL);
>> else
>> $redirect = '';
>>
>> echo 'Effective URL: '.$url.'<br/>';
>> echo 'HTTP result code: '.$resultcode.'<br/>';
>> echo 'Redirection: '.$redirect.'<br/>';
>>
>> curl_close($ch);
>> ?>
>>
>> See in action at <http://arnowelzel.de/samples/curl-sample.php>
>>
>> CURLINFO_REDIRECT_URL is not in the documentation but it was added in
>> PHP 5.3.7. Also see <http://php.net/ChangeLog-5.php>.
>>
>> If this does not work for you (e.g. because you have an older PHP
>> version), you have to extract the location header "manually".
>
> that helps. The php I have available is 5.3, so hints at
> extracting it "manually?"
>
> With thanks and appreciation.
In the example above you will get the headers in $result.
With curl_getinfo(CURLINFO_HEADER_SIZE) you can also check how long the
header part in $result is (beginning with the first character), so
$headers = substr($result, curl_getinfo(CURLINFO_HEADER_SIZE));
should give you all headers.
HTTP headers are in the form
Header1: Value
Header2: Value
[...]
And the redirection URL is
Location: URL
So try to find the "Location: " part and use the remaining text up to
the line break.
BTW: Using tools like the Firebug AddOn for Firefox help a lot to
understand HTTP headers.
--
Arno Welzel
http://arnowelzel.de
http://de-rec-fahrrad.de
|
|
|