phpはリモートイメージクラスインスタンスを取得します

WBOY
リリース: 2016-07-25 09:12:57
オリジナル
1048 人が閲覧しました

例、リモート画像クラスを取得するためのphp。 コード:

  1. if ( ! 定義('basepath')) exit('直接スクリプトアクセスは許可されていません');
  2. /*
  3. * イメージクラスへのリモートアクセス
  4. *
  5. * にはカール拡張機能が必要ですオンにする
  6. * PHP アップロード原理をシミュレートし、キャッシュ ディレクトリを作成し、リモートで取得したファイルをキャッシュ ディレクトリに保存します。
  7. */
  8. class url_pic{
  9. protected $cache; //キャッシュパス
  10. public function __construct($cache='')
  11. {
  12. if(!emptyempty($cache))
  13. {
  14. $this->cache = $cache;
  15. }
  16. else
  17. {
  18. $this->cache = 'uploads/cache/';
  19. }
  20. }
  21. // キャッシュディレクトリを設定する
  22. public function set_cache($cache='')
  23. {
  24. if (!emptyempty($cache))
  25. {
  26. $this->cache = $cache; }
  27. }
  28. /*
  29. * リモートイメージを取得し、ファイルをキャッシュフォルダーに保存します
  30. *
  31. * $url Getリモートファイル リンク
  32. * $error
  33. * @return 777 はフォルダーを作成できないことを返します
  34. * @return キャッシュに保存されているファイル名
  35. */
  36. public function get_file($url,$error=777)
  37. {
  38. $path = $this->build_folder($this->cache);
  39. if($path==false) return $error;
  40. $curl =curl_init()
  41. // 必要な URL を設定します。 roll
  42. curl_setopt($curl,curlopt_url, $url);
  43. // ヘッダーを設定します
  44. curl_setopt($curl,curlopt_header, 0); // 結果を文字列に保存するか画面に出力するかを尋ねるカールパラメータを設定します。
  45. curl_setopt($curl,curlopt_returntransfer, 1);
  46. //curl を実行し、Web ページをリクエストします
  47. $file =curl_exec($curl);
  48. // URL リクエストを閉じます
  49. curl_close($curl);ファイル 取得したデータ
  50. $filename = $this->cache.date("ymdhis");
  51. if(self::build_file($file, $filename)==false)
  52. {
  53. return false }
  54. return; $ filename;
  55. }
  56. // フォルダーを作成します
  57. public function build_folder($dir)
  58. {
  59. if (!is_dir($dir))
  60. {
  61. if (!mkdir($dir,0777,true) || ! chmod ($dir,0777))
  62. {
  63. return false;
  64. }
  65. }
  66. return true; }
  67. /*
  68. * PHP の move_uploaded_file メソッドをシミュレートするためにファイルを移動します
  69. *
  70. * $cache キャッシュ ファイル パス
  71. * $filename必須 生成されたファイル名の絶対パス
  72. *
  73. * @return $filename
  74. */
  75. public function move_file($cache,$filename)
  76. {
  77. $file = @file_get_contents($cache)
  78. if(self:: build_file( $file, $filename)==false)
  79. {
  80. return false; }
  81. unlink($cache); // キャッシュされた画像をクリアします
  82. return $filename }
  83. /*
  84. * ファイルを生成します
  85. * $ file required 書き込まれるファイルまたはバイナリストリーム
  86. * $newname は生成されるファイル名の絶対パスです
  87. */
  88. protected static function build_file($file,$filename)
  89. {
  90. $write = @fopen($ファイル名,"w") ;
  91. if($write==false)
  92. {
  93. return false;
  94. if(fwrite($write,$file)==false)
  95. {
  96. return false; fclose($write)= =false)
  97. {
  98. false を返す
  99. }
  100. true を返す }
  101. }
  102. コードをコピーします
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート