file_get_contents()
短い URL のデータを読み取らない例:
- http://wp.me/pbZy8-1WM、
- http://bit.ly/d00E2C
これを処理するのを手伝ってください。または上記のリンクを処理する CURL 関数はありますか?
これは一般的にうまくいきます。正しく動作しないことがわかった場合は、ストリーム コンテキストを明示的に使用できます。
$url = "http://bit.ly/d00E2C";
$context = stream_context_create(array('http' => array('max_redirects' => 5)));
$val = file_get_contents($url, false, $context);
するべきです。そのために CURL に触れる必要はありません。
私のマシンでは、あなたの問題を再現できません。意図したとおりにページを受け取ります。ただし、問題がリダイレクトにある場合は、これで問題が解決する可能性があります。
<?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);
リダイレクト フォローを切り替えるディレクティブがあるのではないかと思いますが、まだ見つかりません。必要に応じて回答を編集します。
できることは、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;