3

自分のサイトの一部として一般的な Web サイトと URL を表示しようとしています。私が使用している比較的単純なコードの一部を次に示します。

ブラウズ.php

<?   
$enteredurl = $_GET["url"];
$page = file_get_contents($enteredurl);
echo $page;
?>

URL が絶対的ではなく相対的な場合、一部のリンク/画像が機能しないという事実を無視して、これは問題なく機能します。ページは $_GET を使用してアクセスされます。

browse.php?url= http://itracki.com

Web ページは期待どおりに表示されます。ただし、画像など、何か他のものを取得しようとすると、このようなものが得られますが、これはバイナリか何かだと思いますか?

browse.php?url= http://images.itracki.com/2011/06/favicon.png

‰PNG  IHDRóÿa%IDAT8Ëc8sæÌJ0M ```ã3`xaÔ€aa]r#f.–ÄíNIEND®B`‚

私はオンラインで探していて、ページヘッダーを次のように変更しようとしました

<? header('Content-type: image/png;'); ?>

しかし、私はまだ同じ混乱した結果を得ています。アドレスバーに「 http://images.itracki.com/2011/06/favicon.png 」と入力してアクセスした場合、実際に画像をそのまま見る方法を知っている人はいますか?

ありがとう!

4

3 に答える 3

9

これを試して:

<?php
  $img = 'http://images.itracki.com/2011/06/favicon.png';
  $info = getimagesize($img);
  header('Content-type: ' . $info['mime']);
  readfile($img);
?>

はファイルの内容を後で取得するためにメモリに保存するのではなく、ブラウザに直接送信するため、この状況ではreadfile()代わりに使用する必要があります。file_get_contents()readfile()file_get_contents()

また、content-typeは動的に取得されるため、ヘッダーで誤って指定することを心配する必要はありません。

content-type一部の画像には、またはと一致しない拡張子が含まれている場合があるmime-typeため、これにより、このようなタイプの問題が修正されます。

于 2013-01-10T05:50:19.103 に答える