• ベストアンサー

PHPで外部サイトのファイル有無を確認する方法

例えばYahooのタイトル画像の http://i.yimg.jp/images/mht/main14.gif というファイルが存在するのか?をPHPを使って調べたいのですが、 どのようにすれば良いのでしょうか? 初歩的な質問で申し訳ないのですが、 教えていただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

PHPマニュアルのfile_exists()のサンプルの中に url_exists()というユーザー関数の例があります 参考になるかと http://www.php.net/manual/ja/function.file-exists.php

kanata_005
質問者

お礼

おぉ!!バッチリ解決できました。 ありがとうございます(*´▽`*)

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Redpython
  • ベストアンサー率56% (9/16)
回答No.2

こんにちは。 お使いの環境が Linux 環境で wget コマンドが使用できますでしょうか? 可能であれば、`(外部コマンド)` のようにバックスラッシュで外部コマンドを呼び出す事で実現できます。 まぁ、手っ取り早いですが、ピュアな PHP ソースではございません。 ソースは下記の通りです。 <? $filename = 'main14.gif'; $url = "http://i.yimg.jp/images/mht/$filename"; `wget $url >/dev/null 2>&1`; if (file_exists($filename)) { echo "$filename が存在します\n"; unlink($filename); } else { echo "$filename は存在しません\n"; } ?> wget の余計な出力結果を >/dev/null 2>&1 によって葬っております。

kanata_005
質問者

お礼

うっ、難しい・・・。 yambejpさんの回答で解決できました。 丁寧な説明ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • サイトの登録

    自分で作ったサイトを検索してヒットするようにしたいのですがつまり登録したいのですがどうすればいいのかわかりません http://dir.yahoo.co.jp/pg/submit/guide/submit1.html ここの説明を見たのですがこの図(http://i.yimg.jp/images/dir/site_submit/03.gif)のとこができません。 なので次の手順のhttp://i.yimg.jp/images/dir/site_submit/20060315/100b2_01.gif ここのサイトの登録・変更ができません どうすればいいでしょう?

  • オンマウスで画像を変えたい。

    オンマウスで画像を変えたいのですが、 ------------------------------------------ <img src="画像1URl" onmouseover="this.src='画像2URl';" onmouseout="this.src='画像1URl';"> ------------------------------------------ や、 ------------------------------------------ <script> var src1="http://img.yahoo.co.jp/images/phonebook/jp_pb.gif" var src2="http://i.yimg.jp/images/news/yjnews.gif" </script> <img src="http://img.yahoo.co.jp/images/phonebook/jp_pb.gif" onMouseOver="this.src=src2" onMouseOut="this.src=src1" /> ------------------------------------------ など。 どれを使っていいか分からず困っています。 これぞ、っていうタグがあったらよろしくお願いします。

    • ベストアンサー
    • HTML
  • 画像ファイル(.bmp, gif, .jpg, .png)など縦横サイズを取得する方法

    PHP5でホームページにある画像ファイル(.bmp, gif, .jpg, .png)など縦横サイズを取得する方法はありますか? 例えば、Yahooのロゴ http://k.yimg.jp/images/top/sp/logo.gif は、221px, 59pxm GIFnなので、以下のように取得したいです。 $ret = hogehoge???($url); echo $ret["width"]; // 221px echo $ret["height"]; // 59px echo $ret["type"]; // gif

    • ベストアンサー
    • PHP
  • perlで指定か所のurlを取り出したいのですが

    下記のような文字列からhttp://.......jpや....pngなどの部分だけ抜き出したいのですがどうすればいいかわかりません。 どうすればいいでしょうか?? <img src="http://i.yimg.jp/images/bloom/v201212/anonymous_24.png" width="24" height="24"> <img src="http://i.yimg.jp/images/clear.gif" alt="??????????????" width="1" height="1"> <img src="http://amd.c.yimg.jp/im_siggUafHxX5zBqYXXUl0MFuDGQ---x172-y200-q90/amd/20140212-00000043-dal-000-11-view.jpg" width="172" height="200" alt="???????????????????????????????????????????????????????" onContextMenu="javascript:return false;"> <img src="http://i.yimg.jp/images/news/cobranding/dal.gif" alt="????????????" width="170" height="40"> <img src="http://iwiz-talent.c.yimg.jp/im_siggAkAHOLx3UJ96IWzMLAa3aw---x80-y80-pril/o/talent/images/talent/201402/10/m07/m07-1255-140210.jpg" alt="???????????" border="0" width="80" height="80"> <img src="http://i.yimg.jp/images/news/v2/loading_32_b_2x.gif" width="32" height="32"> <img src="http://amd.c.yimg.jp/im_siggdUHHiAjMx0Vtxw6UiBjXGA---x49-y60-q90/amd/20140211-00000068-dal-000-8-view.jpg" alt="?????????????????????????????????Ф????????????"> <img src=" http://i.yimg.jp/images/evt/sochi/images/banner300x90.jpg" alt="????????????????????????" width="300" height="90"> <img src="http://lpt.c.yimg.jp/im_siggOxcR1sffKraZiSLM4Tvlwg---x60-y53-q90/amd/20140212-00000046-spnannex-000-thumb.jpg" alt="????????????μ???????????裲?????????Τ???"> <img src="http://lpt.c.yimg.jp/im_siggd24L.DRjsSsOFQzvcUudxA---x60-y40-q90/amd/20140212-00000104-scn-000-thumb.jpg" alt="???Ρ???????Ф???????????????????????"> <img src="http://lpt.c.yimg.jp/im_sigg5ySCgAEx9Mr.pAnTk_BLeA---x45-y60-q90/amd/20140211-00000010-tospoweb-000-view.jpg" alt="?????????????????????Ρ?????????"> <img src="http://lpt.c.yimg.jp/im_siggbLLaxB6uLw4PgQNbIotTPw---x57-y60-q90/amd/20140212-00000039-dal-000-view.jpg" alt="???????????????Τ????????????????????????????????????????"> <img src="http://amd.c.yimg.jp/im_sigg9vWalgQCOQonMxnTWgrpUg---x40-y60-q90/amd/20140211-00010000-jisin-000-2-view.jpg" alt="??????????????????????????????????????????"> <img src="http://i.yimg.jp/images/clear.gif" width="1" height="1" alt="?????????????"> <img src="http://i.yimg.jp/images/clear.gif" alt="???Υ???????????" width="1" height="1"> [Finished in 0.9s]

    • ベストアンサー
    • Perl
  • phpの外部ファイル読み込みについて

    http://okwave.jp/qa/q7803076.htmlで質問させて頂きましたが、 質問内容がおかしかったので再度投稿させて頂きたいと思います。 a.phpファイル(クライアント表示) <?php include("b.php"); ?> b.phpファイル(読み込まれるファイル) for ($i = 1; $i <= 7; $i++) { } a.phpファイルの任意の場所にb.phpファイルに記載している「1~7」までの数字を表示させたいのですが、いろいろと試してみましたがa.phpファイルでクライアント表示させると「7」や「8」と表示されてしまいうまく表示ができませんでした。 b.phpファイルに「echo $i;」をすると、やはりa.phpファイルの表示させたくない場所に1234567が表示されてしまいます。 調べ方が悪いのか検索しても、解決策が見つからなかったのでご教授頂けたら幸いです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • wgetで指定したファイルだけダウンロードするには?

    wgetのファイル収集ツールで 指定したファイルだけをダウンロードする方法はどうしたら良いのでしょうか? イメージとしてはこのサイトの http://shupla.w-jp.net/items/wget.html 『3.使い方』 を応用したいのですが、 余計なファイル、ディレクトまでダウンロードしていまい上手くいかないのです。 例えばテキストファイルに http://www.yahoo.co.jp/index.html http://k.yimg.jp/images/top/sp/logo.gif http://k.yimg.jp/images/sh/recommend/84_84_0053.gif こんな感じで書いて、この“3ファイルだけ”を差分ファイルとしてダウンロードしたい場合です。 ちなみに仕様してるOSはWindowsXPです。 ご教示いただきたくお願いいたします。

  • yahooカスタムサーチ使用時のSSL警告

    ホームページを作成していますが、 HTTPSのページで警告が出て困っています。 https://のページにアクセスすると、 「~このページには安全でない他のリソースが含まれています。~」となってしまいます。 (chromeだと、URLの左の南京錠マークの上に黄色の三角がついている状態) 調べたところ、当サイトではyahooカスタムサーチを使用しており、 そこで使用されている。 http://custom.search.yahoo.co.jp/images/window/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.gif と http://i.yimg.jp/images/search/customsearch/yjlogo/yjlogo_type4.gif がhttp://~でアクセスされていることが原因で警告が出ているようです。 規約的に画像を消したりすることはNGのようですが、 https://のページでも警告がでることなく利用する方法はありませんか? よろしくお願いします。

  • PHP・MySQLでの画像(BLOB型)表示方法

    初めまして。PHP・MySQLの初心者で大変恐縮ではございますが、 お力を貸していただければ嬉しく思います。 現在、商品を紹介するシステムを制作しておりまして、 PHPを使ってMySQLに画像をBLOB型(mediumblob)で保存し、 単体表示するところまではできました。 しかし、私が実装したい事としまして、商品の一覧表示として 「商品のメイン画像」と 「商品の支払い方法をOKとNGで2つの画像を選択して表示」 (例えば、銀行振込OKという画像と銀行振込NGという画像をその商品によって使い分ける) ような形でMySQLに登録し、表示したいと思っております。 そこで商品1つにつき、その都度「OK」「NG」の画像を登録してもよかったのですが、 リレーションを設定した方が効率がいいと思い、商品のメイン画像の含まれた紹介するメインテーブルと 支払い方法画像テーブルの2つをMySQLに登録しました。 【商品紹介メインテーブル】 テーブル名:lineup id---- name -------main_images----------- mime------- ・・・ 1 ---- item1 ---- [BLOB - ××KiB] ----- image/jpeg ---- ・・・ 2 ---- item2 ---- [BLOB - ××KiB]  ----- image/jpeg ---- ・・・ ・・・ -- ginkouhurikomi_images ---- creditcard_images ・・・ ---------- hurikomiOK ---------------- creditcardOK ・・・ ---------- hurikomiNG ---------------- creditcardNG 【支払方法画像テーブル】 テーブル名:lineup_houhou id--------- name --------- houhou_images ------- mime 1 ---- hurikomiOK------- [BLOB - ××KiB]  ---- image/gif 2 ---- hurikomiNG------- [BLOB - ××KiB]  ---- image/gif 3 ---- creditcardOK ---- [BLOB - ××KiB]  ---- image/gif 4 ---- creditcardNG ---- [BLOB - ××KiB]  ---- image/gif ここで、lineup_houhouテーブルの「name」とlineupテーブルの「ginkouhurikomi_images」をリレーションし lineup_houhouテーブルの「houhou_images」を呼び出す為に、下記記載のindex.phpファイルに 【(1)】 $recordSet = mysql_query ("SELECT m.houhou_images, i.* FROM lineup i, lineup_houhou m WHERE i.ginkouhurikomi_images=m.name ORDER BY id DESC"); としました。 また、一覧表示をするファイルとして用意してあるのが 【index.php】 <?php require ("dbconnect.php"); $recordSet = mysql_query ("SELECT m.houhou_images, i.* FROM lineup i, lineup_houhou m WHERE i.ginkouhurikomi_images=m.name ORDER BY id DESC"); ?> <html> <table> <tr> <th>ID</th> <th>商品名</th> <th>商品画像</th> <th>銀行振込画像</th> <th>クレジットカード支払画像</th> </tr> <?php while ($table = mysql_fetch_assoc($recordSet)) { ?> <tr> <td><?php echo (htmlspecialchars($table["id"])); ?></td> <td><?php echo (htmlspecialchars($table["name"])); ?></td> <td><img src="view.php?id=<?php echo (htmlspecialchars($table["id"])); ?>" /></td> <td><img src="view01.php?id=<?php echo (htmlspecialchars($table["houhou_images"])); ?>" /></td> <td><img src="view02.php?id=<?php echo (htmlspecialchars($table["〇〇〇〇"])); ?>" /></td> </tr> <?php } ?> </table> 【view.php】 <?php require ("../dbconnect.php"); $id = intval ($_GET["id"]); $mime = null; $sql = "SELECT main_images FROM lineup WHERE id = $id"; $result = mysql_query($sql); if (!$result) { echo ("SQLの実行に失敗しました"); echo (mysql_errno().": ".mysql_error()); exit; } if (mysql_num_rows($result) == 0) { $sql = "SELECT main_images, mime FROM lineup WHERE id = 1"; $result = mysql_query($sql); if (!$result) { echo ("SQLの実行に失敗しました"); echo (mysql_errno().": ".mysql_error()); exit; } } $row = mysql_fetch_row ($result); $imgdat = base64_decode ($row[0]); header ("Content-Type:".$mime); echo $imgdat; mysql_close (); ?> 【view01.php】 <?php require ("../dbconnect.php"); $id = intval ($_GET["id"]); $mime = null; $sql = "SELECT houhou_images FROM lineup i, lineup_houhou m WHERE i.ginkouhurikomi_images=m.name"; $result = mysql_query($sql); if (!$result) { echo ("SQLの実行に失敗しました"); echo (mysql_errno().": ".mysql_error()); exit; } if (mysql_num_rows($result) == 0) { $sql = "SELECT houhou_images, mime FROM lineup i, lineup_houhou m WHERE i.ginkouhurikomi_images=m.name"; $result = mysql_query($sql); if (!$result) { echo ("SQLの実行に失敗しました"); echo (mysql_errno().": ".mysql_error()); exit; } } $row = mysql_fetch_row ($result); $imgdat = base64_decode ($row[0]); header ("Content-Type:".$mime); echo $imgdat; mysql_close (); ?> ここで2つの質問があります。まずMySQLの管理方法です。 現状、呼び出すカラム名ごとでしか【(1)】のmysql_query文から画像ファイルを呼び出せない状況です。 自分で考えて、一度lineupテーブルの「ginkouhurikomi_images」と「creditcard_images」を1つにまとめて 「shiharai_images」を作成し、試してみましたが、力不足で上手く呼び出すことはできませんでした。 もう1つはview.phpの作成方法です。 こちらも同じく、呼び出すカラム名ごとに上記view.phpやview01.phpを作成している状況ですが、 上手に1つのファイルにまとめて、使い回しの効くファイルを制作することはできないでしょうか? 改善方法や、このような場合のオススメな方法がありましたら教えていただきたく思います。

    • ベストアンサー
    • PHP
  • ヤフーは繰延税金資産でいくら税金が安くなるのか?

    ヤフーは買収したソフトバンクIDCの繰延税金資産の効果でいくら税金が安くなるのでしょうか? 補足資料(12P)を読むと、繰延税金資産220億とあるのですが、 決算短針のBSには見当たりません。 決算短針 http://i.yimg.jp/images/docs/ir/archives/tanshin/2009/jp0428tanshin.pdf 補足資料 http://i.yimg.jp/images/docs/ir/archives/present/2009/jp0428present-all.pdf

  • 画像URL 画像アップロード

    画像を保存したり自分で加工したり製作して名前を決めてハードに保存してからサイトにアップしますよね。そうすると画像アドレス(画像の上で右クリック→プロパティ)が数字になってたりするじゃないですか。 例→tp://i.yimg.jp/images/mht/14.gif この数字部分(これだと14)をどうやって自分の好きな文字に設定したですが、やり方がわかりません・・・。数字ではなく、画像に関係したアドレスにしたいのです。 サーバーに転送する前に行うべき作業があるのでしょうか?自分的にはハードに保存した名前をそのままアドレスに使いたいのです。(勿論半角英数使用で) サーバーに転送してアップすると数字がたまに変わって、サーチとかで登録してるバナーが関係ない画像にに変換されたりして「ぎゃああああああああ!!!」ってなってしまうこともしばしば。 皆さんの知恵をお貸し下さい。