基于php实现多进制转换与兑换码生成的探索

2018-1-15 孤独求学人 Php

最近要做一个兑换码生成的功能,之前有做过32位唯一码生成器,但是在业务需求中,32位的兑换码有些过长了,用户在应用内填写的时候会比较麻烦,不是很友好,倒是可以做成二维码的形式扫一下就行了,但是业务中还是存在输入兑换码的行为,所以本篇主要是关于以尽量短的字符来生成兑换码,同时要保证唯一性以及生成机制复用性(也就是利用这套机制可以生成不同种类的兑换码)的探索

以下示例代码均基于TPRCMS编写

探索一: 进制转换

生成的32位唯一码是16进制的哈希字符串,我就在想是不是可以通过提高进制来缩短字符串长度,所以有了如下的代码

代码地址: 多进制转换器ConvertLogic
其中关于10进制与62进制互转的部分,参考了《PHP 10进制与62进制互转,可用于生成短网址》

实例代码

$uuid = "cd5fd2cfeb40aafe060f4d9597348be7";
$str = ConvertLogic::convert( $uuid, 16, 62); 

输出

string(32) "cd5fd2cfeb40aafe060f4d9597348be7"
string(22) "6fxdxREtzxq6qNdSghGm7t" 

阅读全文>>

标签: redis uniqid 进制转换 兑换码

评论(0) 浏览(13654)

linux php 安装xdebug扩展

2017-9-6 孤独求学人 Php

# 1. Xdebug 简介
# Xdebug 是一个开放源代码的 PHP 程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况。当前最新版本为 Xdebug 2.6.0。

# 2. Xdebug 相关资料
# 官网:https://xdebug.org
# 官网文档:https://xdebug.org/docs
通过pecl安装xdebug扩展
php环境:PHP 7.0.24
系统环境:CentOS Linux release 7.4.1708 (Core) 
#install xdebug 以下使用pecl安装php扩展,pecl安装传送门
pecl install xdebug

Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249

阅读全文>>

标签: PHP linux pecl xdebug

评论(0) 浏览(9201)

PHP性能优化工具--vld

2016-12-25 孤独求学人 Php

PHP性能优化工具--vld
vld介绍
  1. vld是一个在Zend引擎中,以挂钩的方式实现的用于输出PHP脚本生成的中间代码(执行单元)的扩展。 它可以在一定程序上查看Zend引擎内部的一些实现原理,是我们学习PHP源码的必备良器。
  2. 现在最新版本是 0.14.0(2016-12-18),它的作用是:显示转储PHP脚本(opcode)的内部表示(来自PECL的vld简介)。简单来说,可以查看PHP程序的opcode。
  3. pagelist:http://pecl.php.net/package/vld
vld扩展安装:
wget http://pecl.php.net/get/vld-0.14.0.tgz #download vld
tar zxvf vld-0.14.0.tgz #Decompression package
cd vld-0.14.0 #change dir
phpize #Expanded php extension module
locate php-config #use locate find php-config path
如果提示not found locate command,使用以下命令安装:

阅读全文>>

标签: PHP configure yum vld locate phpize

评论(0) 浏览(13472)

Centos卸载Php的安装环境

2016-8-12 孤独求学人 Php

当我安装Php7.0版本的时候提示:
Error: php70w-common conflicts with php-common-5.4.16-42.el7.x86_64

于是决定卸载Centos上Php的安装环境
查看php版本命令:
#php -v
PHP 5.4.16 (cli) (built: Aug 11 2016 21:24:59)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
这个命令是删除不干净的
#yum remove php
因为使用这个命令以后再用
#php -v
还是会看到有版本信息的。。。。。

阅读全文>>

标签: PHP linux rpm centos

评论(0) 浏览(8624)

Form表单传递参数的编码问题

2016-4-10 孤独求学人 Php

工作中遇到后端接收前端数据,解析不正常通过分析原因如下:
如果前端在form表单提交的时候没有设置enctype属性,传递参数的时候最终以 application/x-www-form-urlencoded方式提交数据,这样传递的参数都进行了urlencode转码。正常情况下后端接收到的参数其实需要urldecode进行解码。由于前端传递参数的过程中没有对任何参数做过特殊处理,但是后端在接收有些参数是使用rawurldecode进行解码的(urldecode和rawurldecode对空空格号的处理方式不一样)。这个原因导致了后端数据解析失败

阅读全文>>

标签: PHP urlencode rawurldecode

评论(0) 浏览(12197)

PHP 实现多服务器共享 SESSION 数据

2016-4-3 孤独求学人 Php

PHP 实现多服务器共享 SESSION 数据
稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块等,各个服务器通过统一接口对用户数据进行访问即可。由于Session存储默认是files即文件存储(即本机生成的session会以文件的方式存储),这时候就出现了各个服务器之间 SESSION 共享数据的问题。 
实现session共享方式有如下三种:
1)通过Redis实现Session共享:
实现方式,在php.ini中添加安装redis扩展,然后修改配置文件中的session存储方式!

阅读全文>>

标签: session redis.memcached.php

评论(0) 浏览(8760)

10个你应该学习使用的PHP特性

2016-1-25 孤独求学人 Php

本文主要总结了10个PHP特性,这些PHP特性对于PHP开发者来说都是应该学习和使用的,译文如下:

1)标量类型声明(PHP7)

PHP是一种松散类型的编程语言,因此没有提供任何指定输入参数类型和返回值类型的方法。 PHP7通过以下语法改变了这个现象:

function add(int $x, int $y) : int
{
    return $x + $y;
}

echo add(1, 2);
有效类型为:类/接口名称,self,array(数组),callable(回调类型),bool(布尔型),float(浮点型),int(整型)和string(字符串)。

2)?? — 空接合操作符(PHP7)

空接合操作符虽然小,但非常好用,是PHP7中新增加的。?? — 只要操作符的左边存在且不为空,就返回左边,否则就返回操作符的右边:

阅读全文>>

标签: PHP json_encode php7

评论(0) 浏览(11092)

php-fpm:No pool defined

2015-11-28 孤独求学人 Php

# service php-fpm start
Starting php-fpm [28-Nov-2015 17:13:23] WARNING: Nothing matches the include pattern ‘/etc/php-fpm.d/*.conf’ from /etc/php-fpm.conf at line 125.
[28-Nov-2015 17:13:23] ERROR: No pool defined. at least one pool section must be specified in config file
[28-Nov-2015 17:13:23] ERROR: failed to post process the configuration
[28-Nov-2015 17:13:23] ERROR: FPM initialization failed

解决方法:

进入PHP安装目录/etc/php-fpm.d

cp www.conf.default www.conf

#service php-fpm start

## netstat -ntlp | grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      32664/php-fpm: mast

标签: PHP linux php-fpm

评论(0) 浏览(15893)

phpize Cannot find autoconf

2015-5-10 孤独求学人 Php

Centos下执行phpize提示“Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this scrIPt.”
原因:缺少autoconf
解决方法:
yum install autoconf

标签: PHP phpize autoconf

评论(0) 浏览(15854)

linux pecl 安装

2015-2-5 孤独求学人 Php

PECL 是通过 » PEAR 打包系统来的 PHP 扩展库仓库,本章内容示范了怎样取得并安装 PECL 扩展。

接下来我们在服务上安装pecl命令:
首先查看php所在的目录:
#which php
# /usr/bin/php

# cd /usr/bin/php

#download

# curl -o go-pear.php http://pear.php.net/go-pear  
# curl -o go-pear.php http://pear.php.net/go-pear.phar # 如果你的php版本高于php5.3, 执行这条  

#install:
php go-pear.php # 回车, 会提示选择安装的东西, 直接回车, 安装全部, 若后面有要选择y/n的, 输入y回车  

如果看到下面的一段话就是安装成功:
Run it without parameters to see the available actions, try 'pear list'  
to see what packages are installed, or 'pear help' for help.  
  
For more information about PEAR, see:  
  
  http://pear.php.net/faq.php  
  http://pear.php.net/manual/  
  
Thanks for using go-pear!  

现在就可以使用PHP的扩展库pecl 安装一些PHP 常用扩展了

阅读全文>>

标签: PHP linux pecl

评论(0) 浏览(14199)

Powered by emlog 豫ICP备15004178号-1