php获取重定向后的地址怎么写
-
要获取重定向后的地址,可以使用以下两种方法来实现:
1. 使用CURL库
使用CURL库可以实现发送HTTP请求并获取重定向后的地址。具体的代码如下:“`php
function getRedirectUrl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $headerSize);
preg_match(‘/Location: (.*?)\n/’, $header, $matches);
curl_close($ch);
if (isset($matches[1])) {
return trim($matches[1]);
} else {
return false;
}
}// 使用例子
$url = ‘http://example.com’;
$redirectUrl = getRedirectUrl($url);
if ($redirectUrl) {
echo “重定向后的地址:” . $redirectUrl;
} else {
echo “未发生重定向”;
}
“`2. 使用file_get_contents函数
使用file_get_contents函数可以发送HTTP请求并获取重定向后的地址。具体的代码如下:“`php
function getRedirectUrl($url)
{
$headers = get_headers($url, 1);
if(isset($headers[‘Location’])) {
return is_array($headers[‘Location’]) ? end($headers[‘Location’]) : $headers[‘Location’];
} else {
return false;
}
}// 使用例子
$url = ‘http://example.com’;
$redirectUrl = getRedirectUrl($url);
if ($redirectUrl) {
echo “重定向后的地址:” . $redirectUrl;
} else {
echo “未发生重定向”;
}
“`以上两种方法都可以实现获取重定向后的地址,根据你的需求选择一种适合你的方法即可。
2年前 -
在PHP中,可以使用curl库来获取重定向后的地址。以下是获取重定向后的地址的示例代码:
“`php
function getRedirectedUrl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// 设置CURLOPT_FOLLOWLOCATION选项以支持重定向
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// 设置CURLOPT_RETURNTRANSFER选项以返回结果而不是直接输出到浏览器
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 执行请求并获取重定向后的地址
$redirectedUrl = curl_exec($ch);
// 关闭curl会话
curl_close($ch);return $redirectedUrl;
}// 调用函数并打印重定向后的地址
$url = “http://example.com”; // 要获取重定向后的地址的原始地址
$redirectedUrl = getRedirectedUrl($url);
echo “重定向后的地址:” . $redirectedUrl;
“`上述代码中,首先使用 `curl_init()` 函数创建一个cURL会话,然后使用 `curl_setopt()` 函数设置会话选项。其中, `CURLOPT_URL` 选项用于设置要访问的URL, `CURLOPT_FOLLOWLOCATION` 选项用于开启重定向跟踪, `CURLOPT_RETURNTRANSFER` 选项用于设置返回结果而不是直接输出到浏览器。
接着,调用 `curl_exec()` 函数执行cURL请求,并将返回的重定向后的地址保存到变量中。最后,使用 `curl_close()` 函数关闭cURL会话。
最后,打印出重定向后的地址。
通过以上代码,您可以获取到重定向后的地址。
2年前 -
在PHP中,可以使用curl库来获取重定向后的地址。下面是具体的操作步骤:
1. 确保你的PHP环境已经安装了curl扩展。你可以通过运行`phpinfo()`函数来检查,看看curl扩展是否已经启用。
2. 使用curl_init()函数初始化一个curl会话。
“`php
$ch = curl_init();
“`3. 设置curl选项。通过curl_setopt()函数来设置选项。在这个步骤中,你需要设置CURLOPT_FOLLOWLOCATION选项为true,以启用重定向跟踪。还可以设置CURLOPT_RETURNTRANSFER选项为true,以确保返回响应内容而不是直接输出。
“`php
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
“`4. 设置要访问的URL。使用curl_setopt()函数来设置CURLOPT_URL选项。
“`php
curl_setopt($ch, CURLOPT_URL, “http://example.com”);
“`5. 执行curl请求。通过curl_exec()函数来执行curl请求。
“`php
$response = curl_exec($ch);
“`6. 获取重定向后的地址。可以使用curl_getinfo()函数来获取重定向后的地址。通过指定CURLOPT_EFFECTIVE_URL选项,函数将返回最后一个重定向的URL。
“`php
$redirectedUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
“`7. 关闭curl会话。使用curl_close()函数来关闭curl会话。
“`php
curl_close($ch);
“`完整的代码示例:
“`php
$ch = curl_init();
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, “http://example.com”);
$response = curl_exec($ch);
$redirectedUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
curl_close($ch);
echo “重定向后的地址是:” . $redirectedUrl;
“`通过以上步骤,你就可以在PHP中获取重定向后的地址了。
2年前