Home > Backend Development > PHP Tutorial > php gets remote image class instance

php gets remote image class instance

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-07-25 09:12:57
Original
1115 people have browsed it

Example, a php to get the remote image class. Code:

  1. if ( ! defined('basepath')) exit('no direct script access allowed');
  2. /*
  3. * Remote access to image class
  4. *
  5. * Requires curl extension to be turned on
  6. * Simulate the PHP upload principle, create a cache directory, and store remotely obtained files in the cache directory.
  7. */
  8. class url_pic{
  9. protected $cache; //Cache path
  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. //Set the cache directory
  22. public function set_cache($cache='')
  23. {
  24. if (!emptyempty($cache))
  25. {
  26. $this->cache = $cache;
  27. }
  28. }
  29. /*
  30. * Get the remote image and store the file in the cache folder
  31. *
  32. * $url Get the remote file The link
  33. * $error
  34. * @return 777 returns that the folder cannot be created
  35. * @return the file name stored in the cache
  36. */
  37. public function get_file($url,$error=777)
  38. {
  39. $path = $ this->build_folder($this->cache);
  40. if($path==false) return $error;
  41. $curl = curl_init();
  42. // Set the url you need to crawl
  43. curl_setopt($ curl, curlopt_url, $url);
  44. // Set header
  45. curl_setopt($curl, curlopt_header, 0);
  46. // Set curl parameters to ask whether the result is saved in a string or output to the screen.
  47. curl_setopt($curl, curlopt_returntransfer, 1);
  48. // Run curl and request the web page
  49. $file = curl_exec($curl);
  50. // Close the url request
  51. curl_close($curl);
  52. //Write the file Obtained data
  53. $filename = $this->cache.date("ymdhis");
  54. if(self::build_file($file, $filename)==false)
  55. {
  56. return false;
  57. }
  58. return $ filename;
  59. }
  60. //Create a folder
  61. public function build_folder($dir)
  62. {
  63. if (!is_dir($dir))
  64. {
  65. if (!mkdir($dir,0777,true) || !chmod ($dir,0777))
  66. {
  67. return false;
  68. }
  69. }
  70. return true;
  71. }
  72. /*
  73. * Move files to simulate PHP's move_uploaded_file method
  74. *
  75. * $cache cache file path
  76. * $filename required The absolute path of the generated file name
  77. *
  78. * @return $filename
  79. */
  80. public function move_file($cache,$filename)
  81. {
  82. $file = @file_get_contents($cache);
  83. if(self::build_file( $file, $filename)==false)
  84. {
  85. return false;
  86. }
  87. unlink($cache); //Clear cached images
  88. return $filename;
  89. }
  90. /*
  91. * Generate file
  92. * $file required The file or binary stream to be written
  93. * $newname is the absolute path of the file name to be generated
  94. */
  95. protected static function build_file($file,$filename)
  96. {
  97. $write = @fopen($filename,"w") ;
  98. if($write==false)
  99. {
  100. return false;
  101. }
  102. if(fwrite($write,$file)==false)
  103. {
  104. return false;
  105. }
  106. if(fclose($write)= =false)
  107. {
  108. return false;
  109. }
  110. return true;
  111. }
  112. }
Copy code


Related labels:
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template