file_get_contents() 用于短网址

发布于 2024-11-10 06:37:24 字数 171 浏览 2 评论 0原文

file_get_contents() 不读取短网址数据 示例:

  • http://wp.me/pbZy8-1WM、http:
  • //bit.ly/d00E2C

请帮我处理这个问题。或者是否有任何 CURL 函数来处理上述链接?

file_get_contents() doesn't read data for short urls
Example:

  • http://wp.me/pbZy8-1WM,
  • http://bit.ly/d00E2C

Please help me in handle this. OR Is there any CURL function to handle above links?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

李白 2024-11-17 06:37:24

这通常工作得很好。如果您发现它没有做正确的事情,您可以显式使用流上下文:

$url = "http://bit.ly/d00E2C";
$context = stream_context_create(array('http' => array('max_redirects' => 5)));
$val = file_get_contents($url, false, $context);

应该这样做。无需为此触及 CURL。

This in general works fine. If you find it doesn't do the right thing you can explicitly use a stream context:

$url = "http://bit.ly/d00E2C";
$context = stream_context_create(array('http' => array('max_redirects' => 5)));
$val = file_get_contents($url, false, $context);

should do it. No need to touch CURL for that.

倦话 2024-11-17 06:37:24

在我的机器上,我无法复制你的问题;我按预期收到了该页面。但是,如果问题出在重定向上,这可能会解决您的问题。

<?php
$opts = array(
    'http' => array(
        'follow_location' => 1,
        'max_redirects' => 20
    )
);
$context = stream_context_create($opts);
echo file_get_contents('http://wp.me/pbZy8-1WM', false, $context);

我想可能有一个指令可以切换重定向,但我还没有找到它。我应该编辑我的答案。

On my machine, I cannot replicate your problem; I receive the page as intended. However, should the issue be with the redirect, this may solve your problem.

<?php
$opts = array(
    'http' => array(
        'follow_location' => 1,
        'max_redirects' => 20
    )
);
$context = stream_context_create($opts);
echo file_get_contents('http://wp.me/pbZy8-1WM', false, $context);

I imagine there may be a directive that toggles redirect following, but I have not yet found it. I will edit my answer should I.

三寸金莲 2024-11-17 06:37:24

你可以做的是使用curl并将CURLOPT_FOLLOWLOCATION设置为True:

$ch = curl_init("http://bit.ly/d00E2C");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$result = curl_exec($ch);
curl_close($ch);

echo $result;

What you can do is using curl with CURLOPT_FOLLOWLOCATION set to True:

$ch = curl_init("http://bit.ly/d00E2C");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$result = curl_exec($ch);
curl_close($ch);

echo $result;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文