php擴充包:可以代替php原生函數的擴充包的簡單介紹

來源:互聯網
上載者:User
本篇文章給大家帶來的內容是關於php擴充包:可以代替php原生函數的擴充包的簡單介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所協助。

雖然程式員無時無刻都在造輪子,但造輪子也有效率之分,用好輪子才能造出好“??”

guzzlehttp/guzzle

composer require guzzlehttp/guzzle

你可以用guzzlehttp完全取代curl,file_get_content,fopen等函數。這個擴充包使用起來極為順手。我們在代碼量上看下對比。

php_curl

<?php    //初始化    $curl = curl_init();    //設定抓取的url    curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com');    //設定標頭檔的資訊作為資料流輸出    curl_setopt($curl, CURLOPT_HEADER, 1);    //設定擷取的資訊以檔案流的形式返回,而不是直接輸出。    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);    //設定post方式提交    curl_setopt($curl, CURLOPT_POST, 1);    //設定post資料    $post_data = array(        "username" => "coder",        "password" => "12345"    );    curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);    //執行命令    $data = curl_exec($curl);    //關閉URL請求    curl_close($curl);    //顯示獲得的資料    print_r($data);

guzzlehttp

use GuzzleHttp\Client;$client = new GuzzleHttp\Client();$response = $client->request('POST', 'http://www.baidu.com', [    'form_params' => [        'username' => 'coder',        'password' => '12345'    ]]);print_r($response);

jenssegers/date

composer require jenssegers/date

使用這個擴充包,讓php程式員對date相關的需求實現更簡潔、簡單了。請看下方對比

php_date

date("Ym", strtotime("-1 day"));  //擷取前一天的日期 date("Ym", strtotime("+1 day"));  //擷取後一天的日期

jenssegers_date

(new Date('-1 day'))->format ('Ym');  // 擷取前一天的日期 (new Date('+1 day'))->format ('Ym');  //擷取後一天的日期

顯而易見,新的方法對date的處理呈現更加直觀。當然這是簡單的應用,複雜的日期計算中,它會更顯優勢。

chumper/zipper

composer require chumper/zipper
使用這個包可以簡化php本身zip函數使用的複雜度

php_zip

<?php    $resource = zip_open($filename);    while($zip = zip_read($resource)) {        if(zip_entry_open($resource, $zip)) {    $file_content = zip_entry_name($zip);            $file_name = substr($file_content, strrpos($file_content, '/') +1);            if(!is_dir($file_name) && $file_name) {                $save_path = $dir .'/'. $file_name;                if(file_exists($save_path)) {                echo '檔案夾內已存在檔案 "' . $file_name . '" <pre />';                }else {                    echo $file_name . '<pre />';                      $file_size = zip_entry_filesize($zip);                    $file = zip_entry_read($zip, $file_size);                    file_put_contents($save_path, $file);                    zip_entry_close($zip);                }                             }        }    }    zip_close($resource);

chumper/zipper

Zipper::make('test.zip')->folder('test')->extractTo('foo');

顯而易見,我想我不用去解釋什麼了。

anchu/ftp

composer require anchu/ftp
本包可以簡化php自身ftp上傳代碼的流程

php_ftp

<?php$host = '10.0.0.42';$user = 'uftp';$pwd = 'uftp'; // 進行ftp串連,根據port是否設定,傳遞的參數會不同if(empty($port)){    $f_conn = ftp_connect($host);}else{    $f_conn = ftp_connect($host, $port);}if(!$f_conn){    echo "connect fail\n";    exit(1);}echo "connect success\n"; // 進行ftp登入,使用給定的ftp登入使用者名稱和密碼進行login$f_login = ftp_login($f_conn,$user,$pwd);if(!$f_login){    echo "login fail\n";    exit(1);}echo "login success\n"; // 擷取當前所在的ftp目錄$in_dir = ftp_pwd($f_conn);if(!$in_dir){    echo "get dir info fail\n";    exit(1);}echo "$in_dir\n"; // 擷取當前所在ftp目錄下包含的目錄與檔案$exist_dir = ftp_nlist($f_conn, ftp_pwd($f_conn));print_r($exist_dir); // 要求是按照日期在ftp目錄下建立檔案夾作為檔案上傳存放目錄echo date("Ymd")."\n";$dir_name = date("Ymd");// 檢查ftp目錄下是否已存在當前日期的檔案夾,如不存在則進行建立if(!in_array("$in_dir/$dir_name", $exist_dir)){    if(!ftp_mkdir($f_conn, $dir_name)){        echo "mkdir fail\n";        exit(1);    }else{        echo "mkdir $dir_name success\n";    }}// 切換目錄if(!ftp_chdir($f_conn, $dir_name)){    echo "chdir fail\n";    exit(1);}else{    echo "chdir $dir_name success\n";}// 進行檔案上傳$result = ftp_put($f_conn, 'bbb.mp3', '/root/liang/ftp/bbb.mp3', FTP_BINARY);if(!$result){    echo "upload file fail\n";    exit(1);}else{    echo "upload file success\n";    exit(0);}

anchu/ftp

Config::set('ftp.connections.key', array(   'host'   => '',   'username' => '',   'password'   => '',   'passive'   => false,   'secure'   => false,));FTP::uploadFile($fileFrom,$fileTo,$mode)
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.