php随机排序、打乱数组的方法:二维数组、多维数组
[ 2020-02-21 14:53:12 | 作者: admin ]
php中的shuffle()函数只能随机打乱一维数组,有什么办法快速便捷的打乱多维数组?
php手册上也提供了参考
随机排序二维数组的函数
<?php
function shuffle_assoc($list) {
if (!is_array($list)) return $list;
$keys = array_keys($list);
shuffle($keys);
$random = array();
foreach ($keys as $key)
$random[$key] = $list[$key];
return $random;
}
?>
随机排序多维数组的函数[code][/code]...
阅读全文…
php手册上也提供了参考
随机排序二维数组的函数
<?php
function shuffle_assoc($list) {
if (!is_array($list)) return $list;
$keys = array_keys($list);
shuffle($keys);
$random = array();
foreach ($keys as $key)
$random[$key] = $list[$key];
return $random;
}
?>
随机排序多维数组的函数[code][/code]...
阅读全文…
php+js实现极验滑块拖动验证码-tncode
[ 2020-01-20 13:40:45 | 作者: admin ]
p.s. 测试发现Php5.6下面webp格式支持挺好,换php5.4经常生成的webp文件不显示,后来强制输出为png就可以了。
目前市面上做的好的拖动验证、用户行为验证有极验验证码、网易易盾验证等,这些第三方验证一般需要收费,本文给大家介绍一款免费的拖动验证码,使用PHP+Javascript实现。
主要技术应用
1、php抠图
2、js canvas画图
3、破解干扰
4、使用webp图片格式
作者已经将代码开源,项目在github上的地址是: https://github.com/binwind8/tncode
使用方法
首先引入相关的js和css文件:
阅读全文…
目前市面上做的好的拖动验证、用户行为验证有极验验证码、网易易盾验证等,这些第三方验证一般需要收费,本文给大家介绍一款免费的拖动验证码,使用PHP+Javascript实现。
主要技术应用
1、php抠图
2、js canvas画图
3、破解干扰
4、使用webp图片格式
作者已经将代码开源,项目在github上的地址是: https://github.com/binwind8/tncode
使用方法
首先引入相关的js和css文件:
<script type="text/javascript" src="tn_code.js"></script>
...阅读全文…
php7.1 PHP-FPM多实例配置及nginx对应配置 9000,9001,9002
[ 2019-12-24 12:37:29 | 作者: admin ]
本文主要针对如何通过配置php7.1的php-fpm多实例,及nginx对多实例负载均衡之配置,不涉及安装。
1、负载均衡服务器(server)查看nginx配置文件 。
可以看到此处user使用的是nginx
2、应用服务器(web)查看 php-fpm配置文件
发现这里php-fpm中的user是apache
修改user=nginx 由于应用服务器没有nginx用户所以启动失败。
3、web服务器添加用户nginx;
#useradd nginx;
4、web服务器php-fpm配置文件 www.conf修改详情如下 :
一、修改user=apache 为nginx
...
阅读全文…
1、负载均衡服务器(server)查看nginx配置文件 。
可以看到此处user使用的是nginx
2、应用服务器(web)查看 php-fpm配置文件
发现这里php-fpm中的user是apache
修改user=nginx 由于应用服务器没有nginx用户所以启动失败。
3、web服务器添加用户nginx;
#useradd nginx;
4、web服务器php-fpm配置文件 www.conf修改详情如下 :
一、修改user=apache 为nginx
...
阅读全文…
PHP 中的CURL 模拟表单的post提交
[ 2019-12-14 09:34:02 | 作者: admin ]
<?php
$url = "http://www.baidu.com";
$data = ['username'=>'老王','pwd'=>'123456'];
$headers = array('Content-Type: application/x-www-form-urlencoded');
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT,
...$url = "http://www.baidu.com";
$data = ['username'=>'老王','pwd'=>'123456'];
$headers = array('Content-Type: application/x-www-form-urlencoded');
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT,
阅读全文…
curl发起post请求时间延迟,甚至超时的问题。header头信息中设置except为空即可
[ 2019-12-13 16:20:53 | 作者: admin ]
先列出 HessianPHP 的错误提示:
基础知识背景:
1)“Expect: 100-continue”的来龙去脉:
HTTP/1.1 协议里设计 100 (Continue) HTTP 状态码的的目的是,在客户端发送 Request Message 之前,HTTP/1.1 协议允许客户端先判定服务器是否愿意接受客户端发来的消息主体(基于 Request Headers)。
即, Client 和 Server 在 Post (较大)数据之前,允许双方“握手”,如果匹配上了,Client 才开始发送(较大)数据。
这么做的原因是,如果客户端直接发送请求数据,但是服务器又将该请求拒绝的话,这种行为将带来很大的资源开销。
...
阅读全文…
CURL transport error: transfer closed with outstanding read data remaining
基础知识背景:
1)“Expect: 100-continue”的来龙去脉:
HTTP/1.1 协议里设计 100 (Continue) HTTP 状态码的的目的是,在客户端发送 Request Message 之前,HTTP/1.1 协议允许客户端先判定服务器是否愿意接受客户端发来的消息主体(基于 Request Headers)。
即, Client 和 Server 在 Post (较大)数据之前,允许双方“握手”,如果匹配上了,Client 才开始发送(较大)数据。
这么做的原因是,如果客户端直接发送请求数据,但是服务器又将该请求拒绝的话,这种行为将带来很大的资源开销。
...
阅读全文…
mysql 字符串长度计算实现代码(gb2312+utf8)
[ 2019-12-12 09:55:28 | 作者: admin ]
PHP对中文字符串的处理一直困扰于刚刚接触PHP开发的新手程序员。下面简要的剖析一下PHP对中文字符串长度的处理:
PHP自带的函数如strlen()、mb_strlen()都是通过计算字符串所占字节数来统计字符串长度的,一个英文字符占1字节。例:
$enStr = 'Hello,China!';
echo strlen($enStr); // 输出:12
而中文则不然,做中文网站一般会选择两种编码:gbk/gb2312或是utf-8。utf-8能兼容更多的字符,所以受到很多站长的喜爱。gbk与utf-8对中文的编码不同,导致中文在gbk与utf-8编码下所占字节也有差异。
gbk编码下每个中文字符所占字节为2,例:
$zhStr = '您好,中国!';
echo strlen($zhStr); // 输出:12
utf-8编码下每个中文字符所占字节为3,例:
...
阅读全文…
PHP自带的函数如strlen()、mb_strlen()都是通过计算字符串所占字节数来统计字符串长度的,一个英文字符占1字节。例:
$enStr = 'Hello,China!';
echo strlen($enStr); // 输出:12
而中文则不然,做中文网站一般会选择两种编码:gbk/gb2312或是utf-8。utf-8能兼容更多的字符,所以受到很多站长的喜爱。gbk与utf-8对中文的编码不同,导致中文在gbk与utf-8编码下所占字节也有差异。
gbk编码下每个中文字符所占字节为2,例:
$zhStr = '您好,中国!';
echo strlen($zhStr); // 输出:12
utf-8编码下每个中文字符所占字节为3,例:
...
阅读全文…
php在线解密网站(魔方一代,魔方二代)
[ 2019-11-07 13:12:39 | 作者: admin ]
PHP EnPHP Decoder: http://enphp.ganlvtech.cn
PHP解密在线 http://www.phpjm.cc/decode
PHP解密:魔方二代-免费解密代码详解 https://www.jianshu.com/p/d01db12372cf
PHP自动化在线解密工具 https://www.jianshu.com/p/9216413a2c94
PHP解密:魔方2代免费在线批量解密 http://shop.720life.cn/tool/php_mofang_2.html
可以在线解密,自动判断加密类型 http://www.yunlu99.com/
魔方一代的解密 https://www.52pojie.cn/thread-697218-1-1.htm
PHP解密在线 http://www.phpjm.cc/decode
PHP解密:魔方二代-免费解密代码详解 https://www.jianshu.com/p/d01db12372cf
PHP自动化在线解密工具 https://www.jianshu.com/p/9216413a2c94
PHP解密:魔方2代免费在线批量解密 http://shop.720life.cn/tool/php_mofang_2.html
可以在线解密,自动判断加密类型 http://www.yunlu99.com/
魔方一代的解密 https://www.52pojie.cn/thread-697218-1-1.htm
php关于数字防注入,intval溢出,intval
[ 2019-08-22 12:48:53 | 作者: admin ]
数字防注入方法
1.强制转换类型,intval(num),(int)num(mum小于等于2147483647),
2.num=num+0 这样php也会自动给你转换
$n="n";
$a=2147483648.05555;
echo intval($a).$n; //result -2147483648
echo (int) $a,$n;//result -2147483648
echo floatval($a).$n;//result 2147483648.0556
echo floor(floatval($a)).$n;//result 2147483648
在32为系统中 第一位为符号位 后面31为指数为 -2的31 ~ 2的31次方-1
64 第一位为符号位 后面的63为指数位 -2的63~2的63次方-1
...
阅读全文…
1.强制转换类型,intval(num),(int)num(mum小于等于2147483647),
2.num=num+0 这样php也会自动给你转换
$n="n";
$a=2147483648.05555;
echo intval($a).$n; //result -2147483648
echo (int) $a,$n;//result -2147483648
echo floatval($a).$n;//result 2147483648.0556
echo floor(floatval($a)).$n;//result 2147483648
在32为系统中 第一位为符号位 后面31为指数为 -2的31 ~ 2的31次方-1
64 第一位为符号位 后面的63为指数位 -2的63~2的63次方-1
...
阅读全文…