如何使用php / curl

时间:2017-09-27 11:56:05

标签: php curl

我有这个php cURL函数,我被阻止获取文件名。
我对cURL不太满意。
这是我到目前为止编写的代码:

我需要下载的图片

  

$网址=阵列(       ' http://image.tmdb.org/t/p/original/f5uNbUC76oowt5mt5J9QlqrIYQ6.jpg&#39 ;,       ' http://image.tmdb.org/t/p/original/lnnrirKFGwFW18GiH3AmuYy40cz.jpg&#39 ;,       ' http://image.tmdb.org/t/p/original/mRYqoCJMmlbtrU6r7vMgzCVnSsX.jpg&#39 ;,       ' http://image.tmdb.org/t/p/original/aX9dKOVnquJRBFWmhIgbBXb6Fxv.jpg&#39 ;,       ' http://image.tmdb.org/t/p/original/gtpPVyRl7TqrfDOa6ACXPc307l.jpg&#39 ;,       ' http://image.tmdb.org/t/p/original/v35zQvL6wHdVRuajYgAnonRfkdZ.jpg&#39 ;,       ' http://image.tmdb.org/t/p/original/4U2cmPcUbAsNTIDkfhNVHZM8JtV.jpg&#39 ;,       ' http://image.tmdb.org/t/p/original/2MPDMRRIr0XqLjP9jjHDr2ug0tn.jpg&#39 ;,       ' http://image.tmdb.org/t/p/original/4jMlfAIlN1zKNcqE6xjuQsrFse2.jpg&#39 ;,       ' http://image.tmdb.org/t/p/original/i6Y96UfPSUqN6jKXkxKJa9cjzDo.jpg&#39 ;,       ' http://image.tmdb.org/t/p/original/2EwK14hB1un6VZRbm5Y2lAKXIKa.jpg&#39 ;,       ' http://image.tmdb.org/t/p/original/iYg6lVR5dQdon2d2AEKPb371LJ0.jpg&#39 ;,       ' http://image.tmdb.org/t/p/origina/2HDtxAeWPq1eIQ9y2itsxR7tFhI.jpg&#39);

<?php

   //multi curl wrapper
   function multiRequest($data, $options = array()) {

          // array of curl handles
          $curly = array();
          // data to be returned
          $result = array();

          // multi handle
          $mh = curl_multi_init();

          // loop through $data and create curl handles
          // then add them to the multi-handle
          foreach ($data as $id => $d) {

            $curly[$id] = curl_init();
            $url = (is_array($d) && !empty($d['url'])) ? $d['url'] : $d;
            curl_setopt($curly[$id], CURLOPT_URL,            $url);
            curl_setopt($curly[$id], CURLOPT_HEADER,         0);
            curl_setopt($curly[$id], CURLOPT_RETURNTRANSFER, 1);

            // post?
            if (is_array($d)) {
              if (!empty($d['post'])) {
                curl_setopt($curly[$id], CURLOPT_POST,       1);
                curl_setopt($curly[$id], CURLOPT_POSTFIELDS, $d['post']);
              }
            }

            // extra options?
            if (!empty($options)) {
              curl_setopt_array($curly[$id], $options);
            }

            curl_multi_add_handle($mh, $curly[$id]);
          }

          // execute the handles
          $running = null;
          do {
            curl_multi_exec($mh, $running);
          } while($running > 0);


          // get content and remove handles
          foreach($curly as $id => $c) {

            $result[$id] = curl_multi_getcontent($c);

            curl_multi_remove_handle($mh, $c);

          }

          // all done
          curl_multi_close($mh);

          return $result; 

     }
  ?>

在本地下载并保存多个图像。

<?php    
    $images = multiRequest($urls);


    //print_r($images);

    //Save images in local 
    foreach($images as $k => $data_image){

      $imagename1= sha1(uniqid(uniqid(), true)).'.jpg'; 
      file_put_contents('images/'.$imagename1, $data_image);

    }
?>

先谢谢您的回复

0 个答案:

没有答案