PHP
文章平均质量分 68
熊先生的博客
这个作者很懒,什么都没留下…
展开
-
ubuntu 安装PHP以及扩展
安装PHP7.2sudo apt-get updatesudo apt-get install php7.2sudo apt-get install php7.2-dev安装php7.2-dev 后即可以使用pecl 安装扩展,比如: pecl install mongodb原创 2020-09-08 10:19:14 · 820 阅读 · 0 评论 -
PHP扩展连接 MongoDB版本问题
由于PHP安装的扩展版本不对应问题导致连接不稳定查看PHP扩展版本php -r "phpinfo();" | grep -i mongomongodbMongoDB support => enabledMongoDB extension version => 1.2.6MongoDB extension stability => stablelibmongoc bundled version => 1.5.5libmongoc SSL => enabledli原创 2020-09-04 11:32:25 · 756 阅读 · 0 评论 -
安装Lumen,使用MongoDB的坑
公司使用docker后一直使用做好的镜像。很久没有自己搭建环境。发现有些坑又忘记了。写文章记录一下。一、安装Lumen使用composer 安装Lumen指定版本。因为PHP版本是7.0 所以Lumen使用5.4的版本,如果Lumen版本与PHP 版本不匹配,运行起来很可能会有报错。composer create-project laravel/lumen service --prefer-dist "5.4.7" 复制.env.example 成 .env。并且修改CACHE_D.原创 2020-05-15 16:20:07 · 699 阅读 · 0 评论 -
Java 实现PHP的openssl_encrypt()
PHP代码:class TestController { public function php_openssl_encrypt($data,$pwd,$iv) { //下面两种方式得到字符串是一样的 return openssl_encrypt($data, 'aes-256-cbc', $pwd, 0, $iv);// return b原创 2017-11-09 16:43:45 · 9957 阅读 · 6 评论 -
Nginx与PHP的文件上传大小限制(转载)
亲测可用,所以转载一下. 转载自:http://www.cnblogs.com/farwish/p/3961819.html修改PHP配置文件中的三项:vim /usr/local/php/etc/php.ini (1)post_max_size = 50M #PHP可接受的最大POST数据 (2)upload_max_filesize = 50M #文件上传允许的最大值转载 2017-10-13 18:07:57 · 205 阅读 · 0 评论 -
PHP 使用aapt 读取安卓APK信息
一、先讲Ubuntu16下aapt命令行读取apk信息1.将appt放到文件夹下。比如/www/appt2.cd 到 /www/appt 运行appt读取apk信息命令。“/www/util/upload/apk/592184.apk” 是apk所在的路径./aapt dump badging /www/util/upload/apk/592184.apk3.可能会报错...原创 2017-05-26 19:16:10 · 1049 阅读 · 0 评论 -
ubuntu16 php 以root 权限运行shell命令
有时候执行php 执行某些shell命令必须使用root权限.如下设置可以让php 免密码运行 sudo 用命令 编辑 /etc/sudoers:visudo -f /etc/sudoers加入如下三行:www-data ALL=(root) NOPASSWD: /bin/cpwww-data ALL=(root) NOPASSWD: /bin/mvwww-data ALL=(root) NO原创 2017-10-11 20:14:42 · 1711 阅读 · 0 评论 -
php7中使用mongoDB的聚合操作对数据进行分组求和统计操作
本文将介绍mongoDB使用aggregate对数据分组,求和。给出shell命令行写法,php7中的写法,也将给出相同数据结构mysql命令行写法。 mongoDB collection a_test 中数据: > db.a_test.find(){ "_id" : ObjectId("59a2431b57416663f0330a99"), "name" : "jack", "age" :原创 2017-08-27 18:33:31 · 11112 阅读 · 0 评论 -
PHP 用fputcsv()生成csv文件在windows Excel 下打开乱码问题解决
参考该文章https://segmentfault.com/a/1190000005366832 生成csv,csv文件在windows wps和我ubuntu16桌面版下打开正常。但是使用windows Excel 打开乱码。解决: function test() { $fileName = 'demo'; header('Content-Type: appl原创 2017-12-13 17:23:04 · 3479 阅读 · 0 评论 -
利用js/jq 利用FormData 对象和ajax上传文件
new FormData(); 可以获取某个表单,但是有时候感觉不太灵活。可以利用jq获取指定input type=file 中的文件,将其赋值给FormData 实例的某个属性,做上传。HTML:<div class="test" style="width: 200px;height: 200px; border: 1px solid"> <input id="image" type="f原创 2017-12-13 18:26:04 · 4159 阅读 · 0 评论 -
nginx, PHP上传文件设置
上传文件太大导致超时或者返回413.设置如下项:1./etc/php/7.0/fpm文件夹下的php.inipost_max_size = 1400Mupload_max_filesize = 1400M2.nginx 配置server 模块中:client_max_body_size 1400M;location ~ .php 模块中:client_body_...原创 2018-07-24 14:50:10 · 1608 阅读 · 0 评论 -
php nginx 配置出现时注意的点
假设 /www 下有多个版本的项目, 如:v1d0, v1d2, v1d3。通过配置nginx根url中的版本号将请求重定向到不同项目。请求 demo.com/v1d0/my-path 将请求定向到v1d0的项目下。例如nginx配置如下:server { listen 80 default_server; listen [::]:80 defaul...原创 2018-07-26 17:17:06 · 279 阅读 · 0 评论 -
PHP7 MongoDB bulkWrite 批量写入或者更新
批量操作mongodb 数据。优点是只用请求一次数据库。$bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);$bulk->update(['name' => 'mike'], ['$set' => ['age' => 11]]);$bulk->update( [ 'name' => ...原创 2019-03-15 19:57:46 · 2920 阅读 · 0 评论 -
php7.0连接mongodb4.0 当扩展版本过低时报错Another cursor derived from this client is in exhaust.
// \$dbCollection 为简写,连接数据库 $maxIds = $dbCollection->find( [], [ 'sort' => [ '_id' => -1 ], 'skip' => ...原创 2019-03-21 16:09:26 · 311 阅读 · 0 评论 -
PHP 实现 RSA 加解密
有时候为了数据安全,我们可以给数据进行RSA加密。私钥与公钥对可以通过工具生成。私钥为加密方保存用来加密数据,公钥给到解密方用来解密。示例中的秘钥对使用的2048强度。 public function rsa() { // 公钥,解密用 $publicKey = '-----BEGIN PUBLIC KEY-----MIIBIjANBgkqh...原创 2019-04-17 18:40:42 · 5867 阅读 · 0 评论 -
PHP 加权抽奖程序
有时会需要做类似抽奖的需求。以下是一个根据权重的抽奖程序。 public function weightRand() { $result = 0; // key 为奖励的等级,value为中奖概。比如1等奖的中奖概率为30%,2等奖的概率为20%。 // 当然实际运用时概率可能并不是这样 $rate = [ ...原创 2019-04-18 10:52:34 · 694 阅读 · 0 评论 -
用PHP SDK做支付宝APP支付(下单及验签)
一、如下为支付宝APP支付PHP SDK DEMO地址。https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.jxZiS8&treeId=54&articleId=106370&docType=1#s4二、如下为支付宝APP支说明:此处用CI框架,若正式上线需将参数$aop->appId、$aop->rsaPrivateKey原创 2017-03-23 20:34:19 · 21457 阅读 · 3 评论 -
PHP7.0 报错Class 'XMLWriter' not found
解决: 需要安装xml扩展:php-fpm7.0 -m | grep xmlapt-get install php7.0-xmlservice php-fpm7.0 restart原创 2017-07-06 15:04:28 · 5231 阅读 · 0 评论 -
php Linux下常用的几个函数
1.$arvc:传入的参数个数, $argc:参数数组,下标为0的值是文件名 test.php<?phpecho '参数个数:'. $argc;echo '参数';print_r($argv);运行命令: php test.php a b c输出:参数个数:4参数Array( [0] => test.php [1] => a [2] => b [3]原创 2017-06-14 21:36:31 · 254 阅读 · 0 评论 -
PHP 遍历多维数组成一维,(数组元素可为对象)
自己用MongoDB时需要转化,被转化的数组可多维,数组元素可为对象。但建议不要数组维度不要太多,因为简单的递归效率不是很高。一、形式①,将数组每层的键拼接的情况1.代码public function mulArray($array,$pre=''){ foreach ($array as $key=>$value) { if (is_object($va原创 2017-04-20 10:29:31 · 2638 阅读 · 0 评论 -
PHPExcel导入的日期格式转换成时间戳
1.PHPExcel导入的excel文件中日期格式为float,转换成我们常用的时间戳用如下函数处理:time=PHPExcelSharedDate::ExcelToPHP(time =PHPExcel_Shared_Date::ExcelToPHP( data[‘pay_time’]);原创 2017-04-25 11:31:42 · 4818 阅读 · 0 评论 -
PHP7/5中 MongoDB的正则匹配操作
PHP5和PHP7对MongoDB 的扩展是不一样的! 即使熟练mongodb的shelll命令查找数据,也不一定会用PHP操作MongoDB。形式上有些差异。 如下是几个参考文档链接。 - MongoDB官网PHP7示例: https://docs.mongodb.com/php-library/master/tutorial/crud/ - PHP官网PHP7 MongoDB 扩展说明文原创 2017-04-25 21:17:26 · 1912 阅读 · 0 评论 -
封装一个简单的PHP连接MongoDB类
1.封装MongoDB类<?phpclass MongoDB{ private $database; private $mongo; function __construct() { $this->mongo = new MongoClient("mongodb://user:password@server_address:port/admin");原创 2017-04-08 20:57:07 · 881 阅读 · 0 评论 -
PHP微信APP支付,下单,处理异步回调
1.下单其中数组转换xml格式,curl发送请求,xml格式转换成数组可单独封装成函数。 public function index() { $order = [ 'appid'=>'123456', 'mch_id'=>'56789', 'nonce_str'=>uniqid(md5(time()))原创 2017-04-01 20:54:11 · 13478 阅读 · 10 评论 -
PHP file_get_contents
1.与其他公司接口对接时,我方用CURL 访问访问请求对方接口。 curl_setopt($curl, CURLOPT_URL, $callback);//接口地址curl_setopt($curl, CURLOPT_POST, true);//以POST方式传curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data))原创 2017-05-26 18:53:44 · 508 阅读 · 0 评论 -
PHP 静态方法、静态属性
网上很多人说静态方法中可以访问非静态方法,然而PHP7 中亲测:静态方法中不可以访问非静态方法。不能使用self::staticFunction() 的方式访问静态方法!!静态方法中也不能访问非静态属性。非静态方法中可以访问,静态/非静态的 属性/方法。原创 2017-05-26 20:50:44 · 299 阅读 · 0 评论 -
CI 框架利用hooks 做登录/权限验证
CI 的hooks官方文档地址: http://codeigniter.org.cn/user_guide/general/hooks.html1.启用钩子 application/config/config.php 文件中$config['enable_hooks'] = TRUE;2.定义钩子 application/config/hooks.php 文件中$hook['pre_cont原创 2017-05-18 18:52:48 · 1375 阅读 · 0 评论 -
PHP7.0安装后mysql缺少PDO驱动
1.PHP7.0安装后用mysql 提示缺少PDO驱动。 这点与PHP5.3不同。 报错: An uncaught Exception was encounteredType: PDOExceptionMessage: could not find driver解决: apt-get install php7.0-mysql原创 2017-06-06 17:46:13 · 8648 阅读 · 1 评论 -
CI多环境配置与hooks做权限出现的问题
通常 一个项目会存在生产环境(production)和开发环境(development),两者的配置往往不一样。如:production连接正式数据库,而development连接测试数据。CI框架提供了多环境配置的办法。继上次在hooks中对CI做了简单权限验证后,需要配置CI多环境。hooks做权限验证链接:http://blog.csdn.net/xiojing825/article/deta原创 2017-06-06 20:13:05 · 714 阅读 · 0 评论 -
PHP 中的call_user_func_array() 和call_user_func()
1.mixed call_user_func ( callable callback[,mixedcallback [, mixed parameter [, mixed $… ]] ) call_user_func — 把第一个参数作为回调函数调用. 第一个参数 callback 是被调用的回调函数,其余参数是回调函数的参数。 以下代码示例摘自<<深入PHP面向对象 设计模式>>$pro原创 2017-06-18 17:47:39 · 515 阅读 · 0 评论 -
ubuntu16.04解决Unable to load dynamic library '/usr/lib/php/20151012/mysqli.so'
PHP 报错:A PHP Error was encounteredSeverity: Core WarningMessage: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/mysqli.so' - /usr/lib/php/20151012/mysqli.so: undefined symbol: mysql原创 2017-06-29 10:08:48 · 8283 阅读 · 1 评论 -
PHP7 操作MongoDB
1.使用$inc,实现数值叠加 $updateUser = [ '$inc'=>[ "total_amount"=> 10 ] ]; $userFilter = [ '_id' => '123', ];原创 2017-04-26 17:56:36 · 2807 阅读 · 0 评论 -
CI index.php $system_path和$application_folder
1.$system_path 表示框架system目录所在路径,system目录中包含CI框架的核心类,必须包含2.$application_folder 应用所在文件夹 3.index.php 最后一行 require_once BASEPATH.'core/CodeIgniter.php';查看常量BASEPATH 的定义是define('BASEPATH', $system_path)原创 2017-06-10 16:49:55 · 1537 阅读 · 0 评论 -
PHP正则笔记
1.PHP正则函数 函数 功能 preg_match() 正则匹配表达式 preg_match_all() 全局正则匹配 preg_repalce() 正则搜索和替换 preg_split() 正则分割字符串 preg_grep() 返回模式匹配的数组单元 preg_repalce_callbacl() 用回调函数执行正则表达式的搜索和替换2.原创 2017-07-04 01:17:34 · 285 阅读 · 0 评论 -
PHP 定义常量const和define的区别
1.const定义常量值只能是基础数据类型.不能是实例,赋值符号右边不能进行运算或者调用函数.const AB = '123';2.define 定义常量,第一个参数常量名,需要引号引起来(const定义不需要),第二个参数可是表达式,或者基础数据类型.第三个参数true时忽略大小写define('BD',dirname(__FILE__).'/test',true);原创 2017-06-14 18:41:46 · 347 阅读 · 0 评论 -
PHPExcel导出(横向,垂直向)、导入
PHPExcel是功能完善的Excel导入导出插件。Github地址:https://github.com/PHPOffice/PHPExcel1.横向导出效果图如下: //横向导出 public function cross() { require_once '/www/data/assets/PHPExcel/Classes/PHPExcel.php'原创 2017-04-16 21:54:24 · 5643 阅读 · 0 评论