浏览模式: 普通 | 列表
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+js实现极验滑块拖动验证码-tncode

[ 2020-01-20 13:40:45 | 作者: admin ]
p.s. 测试发现Php5.6下面webp格式支持挺好,换php5.4经常生成的webp文件不显示,后来强制输出为png就可以了。
attachments/202108/31_132017_.jpg



目前市面上做的好的拖动验证、用户行为验证有极验验证码、网易易盾验证等,这些第三方验证一般需要收费,本文给大家介绍一款免费的拖动验证码,使用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对多实例负载均衡之配置,不涉及安装。

1、负载均衡服务器(server)查看nginx配置文件 。
attachments/201912/24_123933_1.png


可以看到此处user使用的是nginx

2、应用服务器(web)查看 php-fpm配置文件
attachments/201912/24_123948_2.png

发现这里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,
...

阅读全文…
先列出 HessianPHP 的错误提示:
   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 才开始发送(较大)数据。
        这么做的原因是,如果客户端直接发送请求数据,但是服务器又将该请求拒绝的话,这种行为将带来很大的资源开销。
...

阅读全文…
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 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关于数字防注入,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
...

阅读全文…