Mysql权限控制

19. October 2018 DataBase 0
开发过程中使用mysql的root用户进行操作配置等是意见很危险的事,用户权限应分门别类,主要是授权操作,drop操作和alter操作. 查看用户: SELECT `user`,`Host` from mysql.`user` 增加用户: create user \'muu\'@\'%\' IDENTIFIED by \'password\' 授权操作: GRANT SELECT,UPDATE,DELETE,INSERT,ALTER,CREATE ONcollege.* to \'muu\'@\'%\' 查看授权操作: show GRANTS FOR muu 取消授权操作: REVOKE SELECT, INSERT, UPDATE, DELETE on college.* FROM muu

2018年八月笔记

13. August 2018 笔记 0
1.查看php配置文件 php -i | grep \'Configuration File\' 2.若无phpize,安装php-dev模块,根据自己php版本 apt-get install php5.7-dev

Laravel Guzzle Crawler 爬取网页内容

17. July 2018 Laravel 0
①:若为API,返回json数据格式,如下: $client = new Client([\'base_uri\' => \'https://www.usnews.com\']); for ($i = 1; $i <= $total_pages; $i++) { $result = $client->request(\'get\', \"/best-colleges/rankings/$classtype?_page=$i&format=json\", [ \'headers\' => [ \"Proxy-Connection\" => \"keep-alive\", \"Pragma\" => \"no-cache\", \"Cache-Control\" => \"no-cache\", \"User-Agent\" => \"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36\", \"Accept\" => \"image/x-xbitmap,image/jpeg,application/x-shockwave-flash,application/vnd.ms-excel,application/vnd.ms-powerpoint,application/msword,*/*\", \"DNT\" => \"1\", \"Accept-Encoding\" => \"gzip, ...

Guzzle post json数据

10. July 2018 PHP 0
向微信服务器提交json数据中文不进行编码,一些自动任务如服务直达搜索数据需使用服务器提交数据,使用php+guzzle+crontab定时提交数据。 $client = new Client([\'base_uri\' => \'https://api.weixin.qq.com/\']); foreach ($result as $value) { $promise = $client->request(\'POST\', \'wxa/setdynamicdata?access_token=\' . $token, [\'body\' => json_encode($value, JSON_UNESCAPED_UNICODE), \'headers\' => [\'content-type\' => \'application/json\']]); $sim = json_decode($promise->getBody()); ...... } request第三个参数中,注意使用body,值为json_encode($value, JSON_UNESCAPED_UNICODE),然后再设置headers 参数还可为json,会对中文进行encode编码 为multipart时,值为关联数组。 为form_params时,发送一个 application/x-www-form-urlencoded POST请求.

2018年七月笔记

09. July 2018 笔记 0
1.编译文件是出现bash: make: command not found。 原因:最小化安装linux没有预装编译环境。 方法:apt-get install build-essential 2.查看物理CPU个数 cat /proc/cpuinfo| grep \"physical id\"| sort| uniq| wc -l 3.查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep \"cpu cores\"| uniq 4.查看逻辑CPU的个数 cat /proc/cpuinfo| grep \"processor\"| wc -l 5.查看CPU信息(型号) cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 6.PHP date 参数 各种参数详解:   a - \"am\" 或是 \"pm\" ...

PHP 错题笔记

20. June 2018 笔记 0
1.mysql_num_fields 返回查询列的数量 2.strcmp 返回值并不一定是1,0,-1,当$str1,$str2其中有对应位的时候,比较的是对应位第一个不同位相差的ASCII码值。 当没有对应位的时候,比较的是相差的字数。 3.三元运算符是水平级的运算,无法表示if嵌套的递进运算。 4.子类的构造方法会覆盖父类构造方法。 5.final 不能标识成员属性,只能定义成员方法, 6.static修饰的变量常驻内存,实例化只执行构造函数,不执行成员属性赋值操作。 7.对象复制通过引用的方式实现,对象存储的只是堆中的地址。 8.抽象类中不一定非要定义抽象方法,没有方法体的方法叫抽象方法。 9. __call方法在调用对象中不存在的方法时自动调用的,有两个参数。 10.get_class 获取实例化对象所属类名。 11. PDO中一共提供了三种不同的错误处理模式 ① PDO::ERRMODE_SILENT:不报错误② PDO::ERRMODE_WARNING:以警告的方式报错③ PDO::ERRMODE_EXCEPTION:以异常的方式报错 12.affected_rows返回所影响的函数  

支付宝 支付接口接入

15. June 2018 PHP 0
一: 区别下应用公钥和支付宝公钥,这两个并不是一个东西,配置文件中需填写支付宝公钥。 应用公钥通过RSA签名工具计算出来,如下: 而支付宝公钥从支付宝开放平台获得,如下图: 配置文件中alipay_public_key 填写支付宝公钥 二: return_url 和 notify_url 分别为同步跳转地址和异步通知地址, 进行支付宝网页付款是通过get方式请求访问,支付成功后支付宝服务器通过post方式异步通知notify_url 指定的地址,若失败,会继续发送post请求,本地服务器异步地址验证成功后,记得确认已收到异步通知。 在支付成功后,这两个地址都会执行,同步跳转只执行一次,异步通知可重试多次,直到确认收到异步通知或超出官方设定通知重试时长。

PHP精度计算问题

13. June 2018 PHP 0
问题:浮点型运算 $a = 0.1; $b = 0.2; dd($a + $b == 0.3); 结果为false,浮点型数值运算不精确 解决方案: $a = 0.1; $b = 0.2; dd(bcadd($a, $b, 2) == 0.3); 结果为true bcadd — 将两个高精度数字相加 bccomp — 比较两个高精度数字,返回-1, 0, 1 bcdiv — 将两个高精度数字相除 bcmod — 求高精度数字余数 bcmul — 将两个高精度数字相乘 bcpow — 求高精度数字乘方 bcsqrt — 求高精度数字平方根 bcsub — 将两个高精度数字相减

Laravel 服务容器 绑定接口到实现

31. May 2018 Laravel 0
1.在项目根目录app下创建Contract和Services文件,然后编写自己的接口文件(ProductInterface.php)和接口实现文件(ProductService.php) 如接口文件 <?php namespace AppContract; interface ProductInterface { public function lists(); public function show(int $service_id); } 接口实现文件 <?php namespace AppServices; use AppContractProductInterface; class ProductService implements ProductInterface { /* * 产品列表数据service */ public function lists() { //code here } /* * 产品列表详情service */ public function show(int $service_id) { //code here } } 2.在服务容器中注册 可在app/Providers下AppServiceProvider里register中注册 $this->app->bind(\'AppContractProductInterface\', \'AppServicesProductService\'); ...

Laravel 伪造跨站请求保护csrf 在vue中使用

31. May 2018 Laravel 0
项目使用前后分离模式,vue+laravel,使用form表单提交很简单,不使用默认bootstrap.js或独立vue项目需要配置下。 在vue的入口文件,blade模板里添加 <meta name=\"csrf-token\" content=\"{{ csrf_token() }}\"> 然后在axios request拦截器中添加 let token = document.head.querySelector(\'meta[name=\"csrf-token\"]\'); if (token) { axios.defaults.headers.common[\'X-CSRF-TOKEN\'] =token.content; } PS:若独立vue项目,入口使用默认html文件,注释掉第一步加入的meta那行,{{ csrf_token() }}在php文件中才能被正确执行。