6

file_get_contents()短い URL のデータを読み取らない例:

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

これを処理するのを手伝ってください。または上記のリンクを処理する CURL 関数はありますか?

4

3 に答える 3

7

これは一般的にうまくいきます。正しく動作しないことがわかった場合は、ストリーム コンテキストを明示的に使用できます。

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

するべきです。そのために CURL に触れる必要はありません。

于 2011-05-30T05:24:02.777 に答える
4

私のマシンでは、あなたの問題を再現できません。意図したとおりにページを受け取ります。ただし、問題がリダイレクトにある場合は、これで問題が解決する可能性があります。

<?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);

リダイレクト フォローを切り替えるディレクティブがあるのではないかと思いますが、まだ見つかりません。必要に応じて回答を編集します。

于 2011-05-30T05:22:33.607 に答える
1

できることは、CURLOPT_FOLLOWLOCATION を True に設定して curl を使用することです。

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

echo $result;
于 2011-05-30T05:21:56.917 に答える