
php
文章平均质量分 50
码农大叔的博客
毕业于南阳理工学院,从07年7月大学毕业一直搞PHP开发架构相关的工作,其中五年电商前后端开发经验,六年APP、小程序的服务端开发架构经验。目前从事于PHP或golang的开发工作。
展开
-
在对接三方服务云帐户过程发现的问题
基于项目需要,银行卡四要素校验的对接的是云帐户的,在开发过程中根据云帐户提供的PDF文档中说明进行编码对接,其中PDF文档说明中有以下两处:这两处说明放在一起看就会有问题,因为在PHP7下按照上图中的写法,PHP的内置方法openssl_encrypt由于第四个参数值为0,导致encrypt方法中最终返回的$ret的值已经是base64_encode之后的串了,但是估计大多开发可能不知道这点,就容易针对encrypt方法返回的值再次base64_encode一下,最终调用云...原创 2021-12-18 18:09:21 · 2521 阅读 · 0 评论 -
微信内H5调起支付演示
实际开发中有这么一个场景,基于微信公众号(服务号)支付,当前微信用户可以给自己或指定的APP用户充值,实际的交互流程为:第一步:用户同意授权获取code值 应用授权作用域scope参数值固定为snsapi_base(这种方式不弹出授权页面,直接跳转,只能获取用户openid) 授权URL(参考:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html): 其中redirec原创 2020-10-16 17:52:02 · 1371 阅读 · 1 评论 -
mac下为php7.4.5安装swoole4.5.0扩展时所遇到的问题及解决方案
之前已成功在本机把PHP版本从7.3.15升级到了php7.4.5,具体编译参数可见之前的一篇文章。一如即往的从我有道云笔记中找到原先为其它PHP7.3.15版本安装swoole的记录,直接把原先的参数复制过来了# sudo /Users/mac/service/php745/bin/phpize # sudo ./configure --enable-openssl --enable...原创 2020-05-01 17:59:54 · 1939 阅读 · 0 评论 -
MAC下为php7.4.5安装phalcon4.0.5扩展时遇到libtool版本不匹配的问题及解决方案
在运行:sudo ./install --phpize /Users/mac/service/php745/bin/phpize --php-config /Users/mac/service/php745/bin/php-config命令后报:glibtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure....原创 2020-05-01 16:31:19 · 1380 阅读 · 0 评论 -
mac下编译安装php7.4.5及相关扩展安装
php7.4.5下载地址:https://www.php.net/distributions/php-7.4.5.tar.gz编译参数:./configure --prefix=/Users/mac/service/php745 --with-config-file-path=/Users/mac/service/php745/etc --with-config-file-scan...原创 2020-04-28 17:47:28 · 6221 阅读 · 2 评论 -
phalcon从3.4版本升级到4.0版本不兼容变化汇总
在2019-11-22日phalcon官方发布了4.0正式版,具体变化可参考https://github.com/phalcon/cphalcon/releases说明:安装4.0前必须先安装psr扩展,且在php.ini中引入的psr.so要在phalcon.so之前引入,如:extension=psr.soextension=phalcon.so附mac下安装为php7.3.1...原创 2020-01-04 20:29:02 · 4075 阅读 · 0 评论 -
最简代码计算两个文件相对路径
<?php /** * 计算文件2相对于文件1的相对路径 * * @param string $file1 文件1的绝对路径 * @param string $file2 文件2的绝对路径 * @return string 文件2相对于文件1的相对路径 */ function getRelativePath($...原创 2019-10-12 14:17:04 · 343 阅读 · 0 评论 -
mac下编译安装php7时报ld: symbol(s) not found for architecture x86_64的解决方法
在Mac上编译PHP7时,如果使用OpenSSL扩展,会有一个错误Undefined symbols for architecture x86_64: "_PKCS5_PBKDF2_HMAC", referenced from: _zif_openssl_pbkdf2 in openssl.o "_SSL_CTX_set_alpn_protos", reference转载 2016-09-26 21:59:19 · 6879 阅读 · 1 评论 -
不安装mysql的情况下为php7.2.1安装mysqli扩展
环境为新的阿里云ECS云主机,没有事先编译安装mysql,也没有事先yum安装mysql。在编译安装php7.2.1完成后,发现mysqli扩展没有安装。解决办法为进入到php7.2.1源码包( 实际路径可能不同):cd /mnt/soft/php-7.2.1/ext/mysqli/mnt/local/php/bin/phpize./configure--with原创 2018-01-11 17:05:14 · 2853 阅读 · 0 评论 -
PHP7.2中AES加密解密方法mcrypt_module_open()替换方案
直接粘代码,该类是基于微信公众号消息加密解密所提供的PHP DEMO改造而来,目前使用于彬彬大学APP接口token校验中。php的mcrypt 扩展已经过时了大约10年,并且用起来很复杂。因此它被废弃并且被 OpenSSL 所取代。 从PHP 7.2起它将被从核心代码中移除并且移到PECL中。PHP手册在7.1迁移页面给出了替代方案,就是用OpenSSL取代MCrypt.class Aes {...原创 2018-05-08 18:44:06 · 23903 阅读 · 2 评论 -
php突然报api.weixin.qq.com无法解析的问题
下午公司人员反馈彬彬大学APP微信登录有问题,经查询发现APP微信登录接口第一步,即通过code换取网页授权access_token $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$appid}&secret={$appSecret}&code={$code}&grant_ty...原创 2018-06-28 20:55:39 · 13138 阅读 · 10 评论 -
phpmyadmin报错:mysqli_real_connect(): (HY000/2002): No such file or directory 错误正确解决方法
在个人服务器上新安装的PHP7.2.12和mysql8.0.13,安装完成后将下载好的phpmyadmin4.8.3版本解压后直接放到站点根目录下面,输入正确的用户名和密码后会提示如下错误:mysqli_real_connect(): (HY000/2002): No such file or directory网上有说的要改phpmyadmin的配置文件的很多,其实原因是php.ini中...原创 2018-11-29 23:08:33 · 32866 阅读 · 3 评论 -
phpmyadmin在php7.3.0报preg_match(): JIT compilation failed: no more memory解决办法
解决方案:修改php.ini:将;pcre.jit=1改为:pcre.jit=0保存,重启php服务即可。参考:https://stackoverflow.com/questions/53690624/errors-installing-composer-on-macos-jit-compilation-failed...转载 2018-12-21 13:20:53 · 2594 阅读 · 0 评论 -
mac下编译安装php7.3.4报php ld: symbol(s) not found for architecture x86_64解决办法
./configure --prefix=/Users/mac/service/php734 --with-config-file-path=/Users/mac/service/php734/etc --enable-pdo --with-pdo-mysql --with-mysqli --with-fpm-user=www --with-fpm-group=www --enable-opca...原创 2019-04-20 14:09:24 · 2342 阅读 · 0 评论 -
【算法】字符串循环移位后是否包含
给定两个字符串s1和s2,要求判断s2是否能够被通过s1做循环移位(rotate)得到的字符串包含。 例如,s1=AABCD和s2=CDAA,返回true;给定s1=ABCD和s2=ACBD,返回false。今天做笔记题遇到类似上面的一题,之后网上搜了下其实是leetcode上的,看来面试是要刷下leetcode,不然现场想太仓促。以AABCD为例,一次完整的循环移位分别是:AA...翻译 2019-06-25 20:12:16 · 538 阅读 · 0 评论 -
解决php的imagick库Strict Standards: Imagick::clone method is deprecated and it's use should be avoided
php的imagick库调用clone方法时会报Strict Standards: Imagick::clone method is deprecated and it's use should be avoided原创 2016-04-21 12:28:53 · 1636 阅读 · 0 评论 -
php获取某一年的工作日列表
<?php//节假日$holidays = [ '20160101', '20160208', '20160209', '20160210', '20160211', '20160212', '20160304', '20160402', '20160403', '20160404', '20160430'原创 2016-04-13 16:36:40 · 4423 阅读 · 0 评论 -
php curl调用蓝汛刷新CDN缓存接口
直接贴代码 $urls = array( "", "", "" ); $data =array( "username" => $this->cdnUserName, "password" => $this->cdnPwd原创 2015-02-03 17:36:49 · 3269 阅读 · 0 评论 -
什么是LAMP
也许你会嘲笑我这篇文章,说搞PHP的谁不知道什么是LAMP啊?但说实话,我从大二上学期开始接触PHP到大三这段时间确实不知道LAMP是什么,认识LAMP还是在中华英才网上看到的一个PHP招聘信息,上面要求在LAMP平台下开发程序。其实LAMP就是Linux+Apache+MySQL+PHP的简称,它也是指开发平台或环境,LAMP是三大Web程序开发语言(ASP或ASP.NET、PHP、JSP,也原创 2007-06-17 20:15:00 · 973 阅读 · 0 评论 -
php5中的析构函数
class Book { private $title; private $isbn; private $copies; function __construct($isbn) { echo "Book class instance created."; }原创 2007-03-31 14:43:00 · 1159 阅读 · 0 评论 -
PHP语言的中回车换行
Php语言中的回车和换行与C语言是一样的,如果你想在PHP中替换有回车加换行的信息那么就必须在正则表达式中使用/r/n,顺序不能颠倒,即不能/n/r,在使用正则表达式替换或查找特定格式的文本时应注意这一点!原创 2007-04-10 10:48:00 · 3430 阅读 · 0 评论 -
php中的单双引号
一、引号定义字符串 在PHP中,通常一个字符串被定义在一对引号中,如:I am a string in single quotes"I am a string in double quotes" PHP语法分析器是用成对的引号来判断一个字符串的。因此,所有字符串必须使用同一种单或者双引号来定义开始和结束。例如,下面的字串定义是不合法的:"I am not a valid strin转载 2007-07-11 20:09:00 · 3854 阅读 · 2 评论 -
php之正则表达式
一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。 下表是元字符及其在正则表达式上下文中的行为的一个完整列表:字符描述/ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。例如,转载 2007-04-30 13:10:00 · 1932 阅读 · 0 评论 -
php读mysql中文乱码问题解决方法
一般来说,乱码的出现有2种原因,首先是由于编码(charset)设置错误,导致浏览器以错误的编码来解析,从而出现了满屏乱七八糟的“天书”,其次是文件被以错误的编码打开,然后保存,比如一个文本文件原先是GB2312编码的,却以UTF-8编码打开再保存。要解决上述乱码问题,首先需要知道开发中哪些环节涉及到了编码:1、文件编码:指的是页面文件(.html,.php等)本身是以何种编码来保存的。记事本转载 2007-05-10 19:26:00 · 30690 阅读 · 5 评论 -
ASCII码对照表
原创 2007-05-11 09:46:00 · 678 阅读 · 0 评论 -
如何用PHP中的date()函数取得当前的确切时间
一次写程序遇到一个问题:用date()函数获取当时时间时小时数总不对,后来上网搜了一下,才知道是时区的缘故。 date_default_timezone_set(Asia/Shanghai);//PHP 5 >= 5.1.0RC1,你也可以把这句话注释掉看看是什么输出结果 echo date(Y-m-d H:i:s);?> 当然也可以修改php.ini文件,找到原创 2007-05-10 17:08:00 · 1373 阅读 · 1 评论 -
Perl是什么
Perl被称为"骆驼"语言。发明perl的Larry Wall就说过:“Perl可能不好看或者不好闻,但是它能完成任务”。Perl是文本处理语言,它最初就是为了这个目的设计的。Perl是网络编程语言,它内置了socket/client-server协议。Perl是系统管理语言,全球网络很多服务器上就运行着它的脚本。很多时候是单行的脚本。Perl是Web脚本编写语言。至今它仍然是最流行的几种w转载 2007-05-12 21:28:00 · 4708 阅读 · 0 评论 -
用PHP文件上传的具体思路及实现
原创 2007-05-12 22:28:00 · 744 阅读 · 0 评论 -
利用PHP获取网页的源代码或标题
获取网页源代码:$lines = file(http://www.gotogame.com.cn);foreach ($lines as $line_num => $line) { echo "Line {$line_num} : " . htmlspecialchars($line) . "/n";}?>获取网页的标题:$url = http://www.got原创 2007-05-12 21:14:00 · 4049 阅读 · 0 评论 -
php对字符串加密解密常用的几个内置函数
md5urlencodeurldecodebase64_encodebase64_decodeord chrexplodeimplodecountsubstrsrandmicrotime原创 2007-05-12 20:49:00 · 1166 阅读 · 0 评论 -
PHP 数据加密
数据加密在我们生活中的地位已经越来越重要了,尤其是考虑到在网络上发生的大量 交易和传输的大量数据。如果对于采用安全措施有兴趣的话,也一定会有兴趣了解PHP提供的一系列安全功能。在本篇文章中,我们将介绍这些 功能,提供一些基本的用法,以便你能够为自己的应用软件中增加安全功能。 预备知识 在详细介绍PHP的安全功能之 前,我们需要花点时间来向没有接触过这方面内容的读者介绍一些有关密码学的基本知识,原创 2007-06-10 12:51:00 · 1397 阅读 · 1 评论 -
Call to undefined function mysql_create_db()
当我在本机上运行以下代码时出现:Fatal error: Call to undefined function mysql_create_db() in E:/AppServ/www/test3.php on line 5 $link = mysql_connect("localhost", "root", "123456") or die("Could not connect原创 2007-06-14 21:54:00 · 6265 阅读 · 6 评论 -
mysql left join right join inner join
表A记录如下:aID aNum1 a200501112 a200501123 a200501134 a200501145 a20050115表B记录如下:bID bName1 20060324012 20060324023转载 2007-06-16 10:26:00 · 1145 阅读 · 1 评论 -
php5.6关于curl以@方式上传文件的变化及解决七牛上传时报file is not specified in multipart的问题
$ch = curl_init (); curl_setopt ( $ch, CURLOPT_SAFE_UPLOAD, false); curl_setopt ( $ch, CURLOPT_URL, $url ); curl_setopt ( $ch, CURLOPT_POST, 1 ); curl_setopt ( $ch, CUR原创 2014-09-15 12:59:52 · 12692 阅读 · 1 评论 -
ERROR 1406 (22001): Data too long for column 解决方法
解决办法:在my.ini里找到sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”把其中的STRICT_TRANS_TABLES,去掉,或者把sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION注释掉,转载 2007-06-17 19:15:00 · 6501 阅读 · 0 评论