3

ページのコンテンツを取得しようとしているPHPスクリプトがあります。使用しているコードは以下のとおりです

$url = "http://test.tumblr.com";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$txt = curl_exec($ch);
curl_close($ch);

echo "$txt";

今のようにうまくいきます。私が抱えている問題は、文字列のURLを次のように変更した場合です。

$url = "http://-test.tumblr.com";また$url = "http://test-.tumblr.com";

うまくいかないだろう。-test.example.comまたはtest-.example.comは有効なホスト名ではないことを理解していますが、Tumblrでは存在します。これに対する回避策はありますか?

別のphpファイルにヘッダーリダイレクトを作成してみたので、cURLは最初に有効なホスト名を取得しますが、同じように機能します。

ありがとうございました

4

1 に答える 1

0

ハイフン付きのドメイン名

サブドメインで許可されている文字についての前の質問でわかるように、はサブドメイン-を開始または終了するための有効な文字ではありません。したがって、これは実際には正しい動作です。同じ問題がcurl メーリングリストで以前に報告されましたがcurl、標準に従っているため、実際にはサイトで変更することはありません。

ほとんどの場合、tumblrはこれを知っているため、同じサイトにつながる代替アドレスを提供します。

考えられる回避策

ただし、を使用nslookupしてIPを手動で検索し、リクエストをこのIPに直接送信する(およびホスト名を正しい値に手動で設定する)ことを試みることができます。私はこれを試しませんでしたが、ハイフンで開始または終了する不正nslookupな形式のドメイン名を解決できるようです。

カール

curlさらに、php関数はコマンドラインツールへの直接インターフェイスである必要がある ことを知っておく必要がcurlあります。したがって、特別な動作が発生した場合curlは、php関数ではなく、コマンドラインツールのロジックが原因である可能性があります。

于 2013-01-24T10:29:30.603 に答える