이 기사의 내용은 PHP 확장 패키지에 관한 것입니다. PHP 기본 기능을 대체할 수 있는 확장 패키지에 대한 간략한 소개입니다. 필요한 친구들이 참고할 수 있기를 바랍니다.
프로그래머들은 항상 바퀴를 만들고 있지만 바퀴를 만드는 효율성에는 차이가 있습니다. 좋은 바퀴를 사용해야 좋은 "??"를 만들 수 있습니다.
composer require guzzlehttp/guzzle
guzzlehttp 컬, file_get_content, fopen 및 기타 기능으로 완전히 대체할 수 있습니다. 이 확장팩은 사용이 매우 쉽습니다. 코드 크기 측면에서 비교를 살펴보겠습니다.
<?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);
use GuzzleHttp\Client; $client = new GuzzleHttp\Client(); $response = $client->request('POST', 'http://www.baidu.com', [ 'form_params' => [ 'username' => 'coder', 'password' => '12345' ] ]); print_r($response);
composer require jenssegers/date
이 확장 패키지를 사용하면 PHP 프로그래머는 날짜 관련 요구 사항을 더 간결하고 간단하게 구현할 수 있습니다. 아래 비교를 참조하세요
date("Ym", strtotime("-1 day")); //获取前一天的日期 date("Ym", strtotime("+1 day")); //获取后一天的日期
(new Date('-1 day'))->format ('Ym'); // 获取前一天的日期 (new Date('+1 day'))->format ('Ym'); //获取后一天的日期
분명히 새로운 방법은 날짜 처리에 더 직관적입니다. 물론 이는 간단한 적용이므로 복잡한 날짜 계산에 더욱 유리할 것입니다.
composer에는 chumper/zipper가 필요합니다.
이 패키지를 사용하면 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);
Zipper::make('test.zip')->folder('test')->extractTo('foo');
물론 그럴 필요는 없을 것 같습니다. 무엇이든 설명하세요.
composer에는 anchu/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); }
Config::set('ftp.connections.key', array( 'host' => '', 'username' => '', 'password' => '', 'passive' => false, 'secure' => false, )); FTP::uploadFile($fileFrom,$fileTo,$mode)
관련 권장 사항:
php xdebug 확장 설치, phpxdebug 확장
php 확장 및 임베딩--c 확장 개발 helloworld
위 내용은 PHP 확장 패키지: PHP 기본 기능을 대체할 수 있는 확장 패키지에 대한 간략한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!