php enregistrer le contenu de l'éditeur d'une image de l'image à distance locale

Parfois, nos rédacteurs image copiée est à distance, vous devez télécharger sur un serveur local.

 

1, extraire une image distante

  / * 
* Fonction: php parfaite réalisation de l' image à distance est enregistrée dans les locaux 
Paramètres *: url fichier, enregistrez le répertoire de fichiers, enregistrer le nom du fichier à télécharger à l' aide 
* Lorsque vous enregistrez le nom de fichier est vide lorsque le nom d' origine du fichier distant, utilisez 
* / 

    privé la fonction getImage (URL $, nom = $ '', $ type = 0) { 
        IF (TRIM (URL $) == '') { 
            retour Array ( 'nom_fichier' => '', 'la save_path' => '', 'error' => 1). 
        } 
        $ filePath = 'Télécharger / contenu /' DATE ( 'Ymd'). 
      // IF (TRIM ($ save_dir) == '') { 
            .. = $ save_dir root_path DS « WWW '.. DS $ filePath; 
        //} 
        IF (TRIM ($ filename) ==' ') {// nom du fichier pour enregistrer 
            $ EXT = le strrchr (URL $,'. '); 
            !. SI (EXT = $' GIF '&& $ ext! ='. jpg ') { 
                Return array ( 'file_name' => '', 'save_path' => '', 'erreur' => 3);
            }
            filename = $ Time () $ EXT ;. 
        } 
        if (! == 0 strrpos ($ save_dir, '/')) { 
            $ save_dir = '/' ;. 
        } 
// Création d' un répertoire de stockage 
        si (file_exists ($ save_dir)! ! && mkdir ($ save_dir, 0777, true)) { 
            ; Array retour ( 'nom_fichier' => '', 'la save_path' => '', 'error' => 5). 
        } 
méthode d'obtention fichier distant // employé 
        if ($ type) { 
            $ CH = curl_init (); 
            $ timeout = 5;. 
            curl_setopt (CH $, CURLOPT_URL à, $ URL); 
            curl_setopt (CH, CURLOPT_RETURNTRANSFER $ ,. 1); 
            curl_setopt (CH, CURLOPT_CONNECTTIMEOUT $, $ timeout); 
            $ img = curl_exec ($ ch) ;
            if ($ img == false) 
            {
                réseau de retour ( 'file_name' => '', 'save_path' => '', 'erreur' => 6); 
            } 
            Curl_close ($ ch); 
        } else { 
            ob_start (); 
            readfile ($ url); 
            $ img = ob_get_contents (); 
            ob_end_clean (); 
        } 
// $ size = strlen ($ img); 
//文件大小
        $ FP2 = @ fopen ($ save_dir nom $, 'a'.); 
        fwrite ($ FP2, $ img); 
        fclose (FP2 $); 
        unset ($ img, $ url); 
        réseau de retour (. 'file_name' => $ nom de fichier, 'save_path' => DS filePath $, 'erreur' => 0); 
    }

  

En variante, l'éditeur du contenu 2, l'éditeur d'acquisition de contenu, en utilisant le procédé ci-dessus

 / * Enregistrer la télécommande à l'image locale * 
    @param $ éditeur de contenu de contenu 
    @return $ contenu était revenu de remplacement contenu 
    * / 
    protégé   fonction getRempotePicToLocation ($ Contenu) 
    { 
      preg_match_all ( ' / <IMG [^ "] = + src" ([^ "] +) \" / ' , $ contenu, $ les matchs),
       IF ($ les matchs) 
      { 
          $ imglist = $ les résultats [ 1. ],
           le foreach (imglist $ AS $ ou matchs -) 
          { 
             IF (les strpos ($ ou matchs -, ' HTTP ' )> = 0 ) 
             {    / * nom de fichier et l' extension pour obtenir le fichier en cours * /
                 preg_match ( ' /\/([^\/]+\.[az]+)[^\/]*$/ ' , Matche $, Fileinfo $); 
                 $ info = $ ce -> getImage (Matche $, Fileinfo $ [ 1 ], 0 );
                 si ($ info [ ' erreur ' ] == 0 ) 
                 { 
                     $ contenu = str_replace ($ Matche, $ info [ ' save_path ' ] .ds $ [info. ' nom_fichier ' ], $ contenu); 
                 } 
             } 
          } 

      } 
   Retourcontenu $; 
    }
Afficher le code

 

Je suppose que tu aimes

Origine www.cnblogs.com/fogwang/p/12580318.html
conseillé
Classement