>  기사  >  백엔드 개발  >  PHP 확장 패키지: PHP 기본 기능을 대체할 수 있는 확장 패키지에 대한 간략한 소개

PHP 확장 패키지: PHP 기본 기능을 대체할 수 있는 확장 패키지에 대한 간략한 소개

不言
不言원래의
2018-08-14 15:54:172103검색

이 기사의 내용은 PHP 확장 패키지에 관한 것입니다. PHP 기본 기능을 대체할 수 있는 확장 패키지에 대한 간략한 소개입니다. 필요한 친구들이 참고할 수 있기를 바랍니다.

프로그래머들은 항상 바퀴를 만들고 있지만 바퀴를 만드는 효율성에는 차이가 있습니다. 좋은 바퀴를 사용해야 좋은 "??"를 만들 수 있습니다.

guzzlehttp/guzzle

composer require guzzlehttp/guzzle

guzzlehttp 컬, file_get_content, fopen 및 기타 기능으로 완전히 대체할 수 있습니다. 이 확장팩은 사용이 매우 쉽습니다. 코드 크기 측면에서 비교를 살펴보겠습니다.

php_curl

<?php
    //初始化
    $curl = curl_init();
    //设置抓取的url
    curl_setopt($curl, CURLOPT_URL, &#39;http://www.baidu.com&#39;);
    //设置头文件的信息作为数据流输出
    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);

jensegers/date

composer require jenssegers/date

이 확장 패키지를 사용하면 PHP 프로그래머는 날짜 관련 요구 사항을 더 간결하고 간단하게 구현할 수 있습니다. 아래 비교를 참조하세요

php_date

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

date("Ym", strtotime("+1 day"));  //获取后一天的日期

jensegers_date

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

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

분명히 새로운 방법은 날짜 처리에 더 직관적입니다. 물론 이는 간단한 적용이므로 복잡한 날짜 계산에 더욱 유리할 것입니다.

chumper/zipper

composer에는 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, &#39;/&#39;) +1);
            if(!is_dir($file_name) && $file_name) {
                $save_path = $dir .&#39;/&#39;. $file_name;
                if(file_exists($save_path)) {
                echo &#39;文件夹内已存在文件 "&#39; . $file_name . &#39;" <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에는 anchu/ftp가 필요합니다.
이 패키지는 PHP 자체 FTP 업로드 코드 프로세스를 단순화할 수 있습니다.

php_ftp

<?php
$host = &#39;10.0.0.42&#39;;
$user = &#39;uftp&#39;;
$pwd = &#39;uftp&#39;;
 
// 进行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, &#39;bbb.mp3&#39;, &#39;/root/liang/ftp/bbb.mp3&#39;, FTP_BINARY);
if(!$result){
    echo "upload file fail\n";
    exit(1);
}else{
    echo "upload file success\n";
    exit(0);
}

anchu/ftp

Config::set(&#39;ftp.connections.key&#39;, array(
   &#39;host&#39;   => '',
   'username' => '',
   'password'   => '',
   'passive'   => false,
   'secure'   => false,
));
FTP::uploadFile($fileFrom,$fileTo,$mode)

관련 권장 사항:

redis PHP 확장 패키지 설치 방법

php xdebug 확장 설치, phpxdebug 확장

php 확장 및 임베딩--c 확장 개발 helloworld

위 내용은 PHP 확장 패키지: PHP 기본 기능을 대체할 수 있는 확장 패키지에 대한 간략한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.