php
beyond__devil
这个作者很懒,什么都没留下…
展开
-
mysql innodb 引擎 truncate 或 delete 表后,并未释放表空间
分析项目问题时,发现统计表中数据量近 2000 万行,然后使用 truncate 进行清除,清除后,发现表信息显示的还是之前的近 2000 万行,但是 id 确实是从 1 开始。而且一查看表空间,还是之前的没变。从而尝试 delete 删除表操作,然后再次创建表,发现还是一样,有点奇怪!网上一搜索才了解到 innodb 还有这种坑... 参考文章: Mysql InnoDB删除...原创 2020-01-21 10:16:43 · 1746 阅读 · 0 评论 -
mysql Lock wait timeout exceeded; try restarting transaction 错误解决
最近运行的项目中,出现 'Lock wait timeout exceeded; try restarting transaction' 报错,导致出现一系列问题。一直运行的很平稳,突然出现这问题,比较难判断哪里出了问题。先上网搜索,参考: 关于MySQL的lock wait timeout exceeded解决方案 https://segmentfault.com/a/11900...原创 2020-01-21 09:48:18 · 852 阅读 · 0 评论 -
如何模拟并发请求
网站出现恶意并发攻击,解决问题第一步,自己先模拟并发,进行测试 注意: session 登录状态,我们需要设置 cookie api 登录状态,我们一般需要设置 Bearer token 1.并发工具: postman - 网上各种说 postman 并发测试,那是迭代请求,并非并发,错误 AB(Apache Bench) - 这个是经常听说的一款,很简单 参...原创 2019-10-28 17:42:01 · 1131 阅读 · 0 评论 -
自己对 php 的 redis 错误理解
今天上服务器,想查看下 redis 里的数据,使用了 which redis-cli 没找到命令。突然想到,我们通过命令行没有找到 redis 客户端,那 laravel 中的 predis 是如何调用 redis 的,是不是手动指定了 redis 路径?直到搜索 predis 源码,在创建 redis 连接代码,发现: vendor/predis/predis/src/Connectio...原创 2019-10-27 22:31:40 · 475 阅读 · 0 评论 -
Laravel Passport API token 验证,出现 Route [login] not defined 报错
Laravel Passport API token 验证,出现 Route [login] not defined 报错。报错显示确实不太友好,容易把错误引入到其他方向。我刚开始看,也没看明白,不知道这个错误是啥,laravel 不应该强制用户定义 login 路由啊。通过测试,才知道是未登录导致的错误。然后,根据 laravel 的报错提醒,我们简单追下源码,分析下问题: 错误位...原创 2019-10-24 09:30:54 · 3688 阅读 · 0 评论 -
session_set_save_handler()函数注意细节
session_set_save_handler 设置用户自定义会话存储函数例如:如果想使用 PHP 内置的会话存储机制之外的方式, 可以使用本函数。 例如,可以自定义会话存储函数来将会话数据存储到数据库。两种使用方式:1.PHP5.4之前bool session_set_save_handler ( callable $open , callable $close ,原创 2016-08-30 17:33:37 · 7530 阅读 · 1 评论 -
使用 iframe 引用优酷和土豆和腾讯视频,支持 HTML5 手机 播放
写博客,只为记录项目中碰到的问题使用百度视频上传,嵌入远程链接,然后在编辑器中自动转换为支持视频播放的html代码。例如:简单了修改了百度编辑器源码默认的百度编辑器针对视频的处理有2种:1.远程链接,会生成 标签2.本地上传视频,会生成 标签,video是html5的标签,现在大多数浏览器都使用了,但是其支持的格式可能不是很多,具体也没研究,这个工作量太大,而且得不到原创 2016-08-21 14:40:58 · 47412 阅读 · 3 评论 -
某个客户微信上传视频各种问题
对于单个客户的视频上传,程序流程应该是没有问题的,分析主要是客户服务器配置的问题:1.php上传限制打开php.ini配置文件,几个上传相关的配置项,常用的就是这几个。file_uploads = on// 开启文件上传upload_max_filesize = 200M// 上传文件的最大尺寸(多文件上传,应该是总和)max_file_uploads = 20//原创 2016-08-31 15:51:17 · 1241 阅读 · 0 评论 -
几个之前不清楚的正则
匹配图片,遇到需求是:微信图文接口内容中的图片,只能是 jpg和png,一旦匹配到了非 jpg和png的后缀,我们需要提示用户不能上传其他类型!几个使用较少的正则,有的有难度:(?:xx)匹配pattern,但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用1.这个稍微简单点,就是不计入到 $1 $2 .. 这种向后引用(?=xx)正向预查,原创 2016-08-23 17:58:12 · 440 阅读 · 0 评论 -
php的json_encode()中文编码问题
今天,看东西,突然看到之前写的代码,得记录下来,不然又遗忘了!php 5.4.0之前,json_encode() 是不支持 中文编码的5.4.0之后,json_encode()新增了 JSON_UNESCAPED_UNICODE 选项,支持了中文,我们得写一个兼容函数:function ijson_encode($value, $options = 0) { if (empty($v原创 2016-08-24 16:30:06 · 3271 阅读 · 0 评论 -
公司的支付宝接口问题
支付宝充值一次,系统加了一次或多次,例如:充值1元,正常情况下系统用户的余额+1元,但有的用户反馈,添加了2次或3次。查看代码,发现是return_url 和 notify_url 的问题之前也没做过支付接口,此次简单看了下支付宝的接口文档,结合公司已写的业务逻辑,简单的进行了了解:notify_url ,异步通知接口return_url,同步通知接口支付宝的通知流程是:原创 2016-08-26 13:39:36 · 961 阅读 · 0 评论 -
ios系统,打开浏览器,滑动页面,出现弹性效果的解决方案
项目中和我一块的同事解决的,今天没心情仔细看内容了,调试这些很麻烦,记得这个效果就行了1.百度搜索问题:IOS的弹性滚动,会出现好多,看几个就知道怎么解决了2个链接:http://www.zhihu.com/question/22256539https://segmentfault.com/q/10100000007694442.h5动画效果时,IOS的兼容原创 2016-08-26 14:45:24 · 9971 阅读 · 0 评论 -
php7.0 出现 curl_setopt(): Disabling safe uploads is no longer supported in 报错!
项目换成php7.0,进行了测试,使用curl时,出现:curl_setopt(): Disabling safe uploads is no longer supported in xxx。定位到代码行: //5.6版本兼容 if (ver_compare(phpversion(), '5.6') >= 0) { curl_setopt($ch, CURLOPT_SAFE原创 2016-09-17 18:22:51 · 4962 阅读 · 1 评论 -
php7.0的新特性
今天没事,看了看php的文档,记录php7.0的新特性,或者是自己以前不注意的细节:1.3元运算符$a有定义,正常写法$a = 'dongxuemin';$b = $a ? $a : '董学敏';echo $a; // 输出 'dongxuemin'$a有定义,简写:$a = 'dongxuemin';$b = $a ? : '董学敏';echo $b; /原创 2016-09-18 10:50:36 · 1342 阅读 · 0 评论 -
PHP 7 标量类型声明 RFC,也可是 declare(strict_types = 1)
一、总结该RFC建议添加4种新的标量类型声明:int,float,string和bool,这些类型声明将会和PHP原来的机制保持一致的用法。RFC更推荐给每一个PHP文件,添加一句新的可选指令(declare(strict_type=1);),让同一个PHP文件内的全部函数调用和语句返回,都有一个“严格约束”的标量类型声明检查。此外,在开启严格类型约束后,调用拓展或者PHP内置函数在参数解转载 2016-09-19 11:15:39 · 7848 阅读 · 0 评论 -
php控制结构语句declare中的tick的详解[整理版]
先看看手册是怎么说的:declare 结构用来设定一段代码的执行指令。declare 的语法和其它流程控制结构相似:1declare (directive)2 statementdirective 部分允许设定 declare 代码段的行为。目前只认识两个指转载 2016-09-19 11:16:48 · 914 阅读 · 0 评论 -
php的declare查看
查看手册的时候,意外发现7.0的declare中出现了一个declare(strict_types=1);就看了看手册的declare声明,目前支持3条指令:ticks = Nencoding = utf-8strict_types = 1 // 严格模式,貌似7.0新增关于用法,在网上搜了2篇文章,解释的不错,粘贴到自己的博客中,供以后查看原创 2016-09-19 11:12:37 · 301 阅读 · 0 评论 -
PHP通过pdo链接mysql
php7.0,不支持mysql_系列函数,支持mysqli和pdo,更推荐的是pdo!将项目中的安装文件的mysql_系列函数,升级为pdo函数的过程中,看了看pdo的操作文档。1.我们都知道,首先得链接数据库成功,使用mysql很简单:mysql_connect('127.0.0.1:3306', 'root', 'root'),if判断返回值即可。而pdo链接,正确返回原创 2016-09-20 10:29:38 · 3967 阅读 · 0 评论 -
XML注入攻击
一、漏洞描述XML文件的解析依赖libxml库,而libxml2.9以前的版本默认支持并开启了外部实体的引用,服务端解析用户提交的xml文件时未对xml文件引用的外部实体(含外部普通实体和外部参数实体)做合适的处理,并且实体的URL支持file://和php://等协议,攻击者可以在xml文件中声明URI指向服务器本地的实体造成攻击。图片素材来自网络二、形成原因解析转载 2016-10-10 18:07:10 · 10579 阅读 · 0 评论 -
php的libxml函数
打算给初学者分享下微信,从头看微信文档,解析xml时,出现了一个函数:libxml_disable_entity_loader(),没见过。。。就决定简单的了解下,可查看我转载的文章:XML注入攻击接着,看到libxml函数就几个,顺带简单的看看,就翻译了下(也不知道最近咋了,喜欢用我这很垃圾的英文翻译。。。):libxml函数库:1.简介:PHP5原创 2016-10-10 18:31:24 · 4491 阅读 · 0 评论 -
phpmyadmin文件最大上传限制修改
再一次碰到了 “文件上传大小” 的问题,这次是phpmyadmin里的问题,之前给一个客户解决过,还专门写了一篇文章: 某个客户微信上传视频各种问题可惜,这次还是各种上网查,最终定位的问题,无非就是上面文件中提到的。phpmyadmin程序内部,并没有对上传进行限制!可依照上个文章进行排查。主要涉及php和服务器(httpd或nginx)修改完毕后,php得重启ph原创 2016-11-06 14:05:55 · 1061 阅读 · 0 评论 -
微信接口,返回ASCII码,json_encode后出现null
昨天解决客户的一个问题,描述下问题:客户通过微信获取用户基本信息接口,来获取用户信息,接口地址:http请求方式: GET https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN 返回的json中,emoji表情等,这些字符还好。在city,prov原创 2016-09-30 10:48:00 · 1977 阅读 · 0 评论 -
php的语法高亮函数,highlight_string和highlight_file(别名是:show_resource),以及highlight在php.ini中的配置
PHP内置的语法高亮函数,有2个,存在在 "Misc-杂项函数" 中: highlight_string(string $str [, bool $return = false]) highlight_file(string $filename [, bool $return = false]) show_source() - lighlight_file()的别名原创 2016-10-16 10:28:49 · 3646 阅读 · 0 评论 -
PHP Tokenizer 学习笔记
简述在某个项目中需要分析 PHP 代码,分离出对应的函数调用(以及源代码对应的位置)。虽然这使用正则也可以实现,但无论从效率还是代码复杂度方面考虑,这都不是最优的方式。查询了 PHP 手册,发现其实 PHP 已经内置解析器的接口,那就是 PHP Tokenizer ,这工具正是我想要的。使用 PHP Tokenizer 能简单、高效、准确的分析出 PHP 源代码的组成。转载 2016-10-16 10:31:34 · 1855 阅读 · 0 评论 -
PHP的php_strip_whitespace函数描述,以及手册中写的代码压缩函数-可看看函数是怎么实现的
php_strip_whitespace函数:php_strip_whitespace(string $filename) 1.返回删除注释和空格后 filename 的PHP源码(想要减少文件大小,我们可以使用此函数) 2.这对实际代码数量和注释数量的对比很有用,一般文件中的注释就占了很大比重,尤其是一些框架,都有自己的版权,一大堆,可麻烦了 3.在命令行上,执原创 2016-10-16 11:07:00 · 1114 阅读 · 0 评论 -
php手册中的tokenizer详细总结,基本看它就够了
tokenizer - 解析器简介: tokenizer函数提供了一个内嵌在Zend引擎的"PHP tokenizer"的调用接口。使用这些函数,你可以写出你自己的PHP源码分析或者修改工具,而无需处理词法分析级别上的语言规范。仅包含2个函数: token_get_all(string $source) 1.token_get_all() 解析原创 2016-10-16 10:45:20 · 7736 阅读 · 1 评论 -
Never Use $_GET Again-别再使用$_GET页面翻译,Filter扩展
原文地址:Never Use $_GET Again别再使用$_GET了你不需要再使用$_GET或者$_POST。事实上,你或许不应该再使用$_GET和$_POST。PHP5.2以后,有一个新的、更好的方式去安全检索用户提交的数据。有多少次,我们已经听见关于PHP应用程序的非转义GET和POST参数的安全问题了?通常,对用户输入的适当转义是web开发一直存在的一个问题,而且不论什么理由原创 2016-10-16 22:12:44 · 755 阅读 · 2 评论 -
PHP的filter扩展详解
大概浏览下PHP手册,发现在 "函数参考->变量与类型相关扩展" 中有个Filter扩展,然后又在网上找了几篇博客看了看,都是10年左右的文章,实在不知道这个技术是否实用,一直在纠结,想想算了,就当花时间提高英文了:https://www.gracecode.com/posts/3029.html的博客,提到了国外的一篇文章,我就翻译下吧。原文地址:Never Use $_原创 2016-10-17 09:01:14 · 2013 阅读 · 0 评论 -
php json_encode 中文乱码解决方法
本文列举3个方法,实现json_encode()后的string显示中文问题。做接口时不需要,但存log时帮了大忙了。在贴代码前,必须贴上官方param和return,链接:http://php.net/manual/zh/function.json-encode.php 参数value待编码的 value ,除了resource 类型之外,可以为任何数转载 2016-11-07 18:05:18 · 6972 阅读 · 0 评论 -
将GeoIP的region_code列表也复制过来一份
AD,02,"Canillo"AD,03,"Encamp"AD,04,"La Massana"AD,05,"Ordino"AD,06,"Sant Julia de Loria"AD,07,"Andorra la Vella"AD,08,"Escaldes-Engordany"AE,01,"Abu Dhabi"AE,02,"Ajman"AE,03,"Dubai"AE,04,"Fu原创 2016-10-17 14:19:05 · 11799 阅读 · 0 评论 -
手册上的GeoIP扩展详解,按手册整理了一遍
手册中,"其它基本扩展->GeoIP",有一个GeoIP扩展,今天我们来研究下这个扩展:简介: GeoIP扩展允许你查找IP地址的位置。可以借助GeoIP获取:城市,州,国家,经度,纬度,以及其它信息,例如:ISP(网络服务提供商)和链接类型安装/配置: 1.GeoIP扩展需要1.4.0以上的GeoIP C语言 库,我们需要获取,并自己编译安装。原创 2016-10-17 14:45:23 · 3790 阅读 · 0 评论 -
PHP: 深入pack/unpack
PHP作为一门为web而生的服务器端开发语言,被越来越多的公司所采用。其中不乏大公司,如腾迅、盛大、淘米、新浪等。在对性能要求比较高的项目中,PHP也逐渐演变成一门前端语言,用于访问后端接口。或者不同项目之间需要共享数据的时候,通常可以抽取出数据层,通过PHP来访问。写在前面的话本文介绍的是通过二进制数据包的方式通信,演示语言为PHP和Golang。PHP提供了pack/unpack函转载 2016-11-07 19:30:56 · 624 阅读 · 0 评论 -
php json_encode 中文乱码解决方法
之前,项目中就碰到了json_encode()中文编码点问题,我当时就搜了些资料,写了博客,写了一个php版本兼容的函数: php的json_encode()中文编码问题当时,只是找到了答案,并未详细看。今天一个同事,又问起我这个函数里面的各种细节,我就仔细看了下:preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv('UCS-2原创 2016-11-07 18:03:58 · 756 阅读 · 0 评论 -
php中的sprintf()函数的format格式字符串
上次碰到的ASCII码问题,查看别人博客时,发现使用sprintf(),可以来输出。这个输出函数,以前也看了好多次,然而并未仔细看它的用途。这次就彻底查看手册,整明白,到底可以做什么。就有了如下的文档翻译,因中文文档该函数文档也是英文,只能是自己有限的翻译下:format字符串由0个或更多的指令组成:普通字符(除了%)不会转变,直接复制到结果字符串中;转换说明(conversion s原创 2016-10-04 22:54:39 · 12661 阅读 · 0 评论 -
PHPExcel导入15M的Excel表到数据库,出现nginx:504 gateway timeout
PHPExcel导入15M的Excel表到数据库,出现nginx:504 gateway timeout!PHPExcel导入数据,太尼玛耗内存了!看了下官方文档,5M的数据,就得占5G的内存,这不是开玩笑么。。所以,参照官方的文档,使用chunk块上传,内存减少了,但是会消耗更长的时间。测试了下,3万的数据,每次读去3000行,花费了204s,内存大约130M。之前出现了:ngi原创 2016-11-29 16:29:57 · 3951 阅读 · 1 评论 -
正则表达式匹配中文字符
老早以前,就搞过这块了,查过好多资料,不多当下又忘记了,而且当时总结的资料不知道跑哪里去了,再次总结下:javascript使用:[\u4e00-\u9fa5]java中使用的也是:[\u4e00-\u9fa5]网上有人说:现在网上大多数用于判断中文字符的是 \u4E00-\u9FA5 这个范围是只是“中日韩统一表意文字”这个区间,但这不是全部,原创 2016-12-10 22:02:38 · 8095 阅读 · 0 评论 -
总结了下PHPExcel官方读取的几个例子
1.使用 PHPExcel_IOFactory 读取文件 $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); 2.使用一个特定的读取类,读取文件 $objReader = new PHPExcel_Reader_Excel5(); objPHPExcel = $objReader->load($inputFileNa原创 2016-12-04 23:28:56 · 43553 阅读 · 6 评论 -
通过PHPExcel导出Excel文件时,出现“格式与文件扩展名格式不一致”错误!
今天在window下,通过PHPExcel导出Excel文件时,出现“格式与文件扩展名格式不一致”错误!phpExcel整个导出流程没有问题,导入也正常。之前在mac下和linux下也没问题,怀疑是windows下修改代码时,导致的错误,查看导出代码,完全一致!没法:百度、google,基本都可以解决,深层的问题,还是得google。还得说明一点:发现问题的过程,就是成长的过程!只有见原创 2016-11-22 11:50:14 · 18680 阅读 · 0 评论 -
PHP的zip、unzip类详解
项目涉及到一个压缩、解压,打算使用zip压缩,就看了下手册的ZipArchive,总结了下,当过一篇,大概了解,希望对大家有帮助,觉得好的点个赞!哈哈!1.打开一个ZIP包,用于读取、写入或修改 open(string $filename [, int $flags]) $filename - 文件名 $flags - 打开模式 ZIPARCHIVE::OVERWRITE -原创 2016-12-08 19:26:32 · 4878 阅读 · 0 评论 -
php的phar归档
今天,打算详细的看看 composer 文档,一直知道有个 composer.phar 文件,经常见,但就不知道 '.phar' 后缀的文件,是做什么的,就百度了下:PHP5.3之后支持了类似Java的jar包,名为phar。php手册的压缩与归档有这个phar东西,一直没看过这个!简单看了下才了解了。jar(java+archive)phar(php+archive)1.原创 2017-02-11 21:22:53 · 702 阅读 · 0 评论