PHP
芝麻酱堂
心有猛虎,细嗅蔷薇
展开
-
Mac安装了PHP,但是执行php -v仍然提示command not found: php解决方案
在Mac电脑上安装了PHP,在执行php -v查看版本信息或者php -m 查看加载的模块信息时,仍然提示:command not found: php。然后再执行 php -v,完美显示。原创 2022-10-24 14:35:25 · 2868 阅读 · 1 评论 -
json_decode解析json字符串时null问题解决
该字符中含了ASCII码ETB控制符,即\x17导致json解析失败。3、对应报错值查询表处理。PS:json报错表。原创 2022-10-21 18:30:17 · 772 阅读 · 0 评论 -
踩坑记--intval函数处理浮点数计算导致的不精确问题
intval导致的php浮点数计算不精确问题原创 2022-10-18 10:00:43 · 271 阅读 · 0 评论 -
PHP性能分析工具xhprof 参数简介详解
Function Name:方法名称。Calls:方法被调用的次数。Calls%:方法调用次数在同级方法总数调用次数中所占的百分比。Incl.Wall Time(microsec):方法执行花费的时间,包括子方法的执行时间。(单位:微秒)IWall%:方法执行花费的时间百分比。Excl. Wall Time(microsec):方法本身执行花费的时间,不包括子方法的执行时间。(单位:微秒)EWall%:方法本身执行花费的时间百分比。Incl. CPU(microsecs...原创 2021-10-13 17:05:38 · 411 阅读 · 0 评论 -
面试必知必会--哈希冲突及其解决方式
哈希冲突的产生原因哈希是通过对数据进行再压缩,提高效率的一种解决方法。但由于通过哈希函数产生的哈希值是有限的,而数据可能比较多,导致经过哈希函数处理后仍然有不同的数据对应相同的值。这时候就产生了哈希冲突。产生哈希冲突的影响因素装填因子(装填因子=数据总数 / 哈希表长)、哈希函数、处理冲突的方法解决哈希冲突的四种方法1.开放地址方法 (1)线性探测 按顺序决定值时,如果某数据的值已经存在,则在原来值的基础上往后加一个单位,直至不发生哈希冲突。 (2)再平方探测原创 2021-08-16 10:43:48 · 240 阅读 · 0 评论 -
工作记录--PHP实现图表功能
最近要用PHP实现生成雷达图的功能单使用GD库不太可能,需要借助第三方插件,就在网上找到了jpgraph https://jpgraph.net/具体可见官方文档,感觉实现效果不如前端插件实现的好原创 2021-08-06 14:43:58 · 154 阅读 · 0 评论 -
PHP必知必会 -- 正则表达式(一)
正则通用原子和元字符:\d 匹配一个数字字符 [0-9]\D 匹配一个非数字字符 等价于[^0-9]\w 匹配包含下划线的任何单词字符 等价于[0-9a-zA-Z_]\W 匹配任何非单词字符 等价于[^0-9a-zA-Z]. 匹配除了'\n'之外的任何单个字符^ 匹配输入字符串的开始位置,在字符域[]中表示取反,如'[^\w]'等于'\w',而^\w表示已单词字符开头$ 匹配输入字符串的结束位置,例如'\w$'表示以单词字符结尾? 匹配前面的子表达式零次或者一次等价于.原创 2021-07-21 16:27:46 · 92 阅读 · 0 评论 -
PHP-FPM的那些事
前言: 最近在深入的学习PHP,就少不了对PHP-FPM的学习。都说好记性不如写CSDN,还是想着记录下知识点,以免时间长了忘记了。一、什么是PHP-FPM 首先要明白 PHP-FPM是什么意思,F:FastCGI,P:Process,M:Manager,是一个PHPFastCGI进程管理器。 这个时候就需要了解下 什么是 FastCGI和CGI,CGI是通用网关协议Common GateWay Interface的缩写,是Web服务器调用外部程序时的一种服...原创 2021-05-07 11:22:12 · 272 阅读 · 14 评论 -
XML中Entity ‘nbsp‘ not defined报错解决
今天在做Rss数据推送时,在访问生成的XML文件竟然报了Entity 'nbsp' not defined的错误,就在想怎么空格也会报错呢,原来原因是: 是HTML实体,但XHTML用的是XML规则,它只定义了&、>和<这3个命名实体。解决方式:使用Unicode character code,也就是 。其他的字符转换可以看该文列出的表格。此外,HTML也是有 的,因此直接把 改成&原创 2021-03-12 17:03:35 · 1436 阅读 · 0 评论 -
将pdf转化为图片
$cmd = "convert -resize 750x1000 -density 150 -quality 100 -append \"$filename\" \"$tmp_name_png\" ";$shell_result = shell_exec($cmd);[root@localhost ~]# convert --helpVersion: ImageMagick 6.9.10-68 Q16 x86_64 2020-04-01 https://imagemagick.orgCop.原创 2020-07-10 18:12:03 · 475 阅读 · 0 评论 -
PHP将pdf转成html
最近有个功能需求是:识别pdf文件转化为html页面形式解决方式:方法1:开始是寻找的PHP插件pdfparser,详见github链接:https://github.com/smalot/pdfparser,官网示例文档:https://www.pdfparser.org/documentation摘录示例如下<?php // Include Composer autoloader if not already done.include 'vendor/autoload...原创 2020-07-07 14:19:58 · 3377 阅读 · 0 评论 -
Nginx配置upstream来访问不同的项目
比如:要实现 https://x.xx.xxx.com/commom/index.php和https://x.xx.xxx.com/news/index.php来访问两个不同的项目,可进行如下配置upstream common { server 172.17.3.188:8010 max_fails=3 fail_timeout=60 weight=1; }upstream news { server 172.17.3.188:8002 max_fails=3 fail_..原创 2020-05-18 14:32:38 · 1297 阅读 · 1 评论 -
最新的根据手机号获取归属地的免费的接口
前言:做了一个活动,需要知道报名用户的手机归属地校验和后台的展示。在网上搜索了一些免费的第三方API接口,整理如下:1,百度提供的(记录下,不能使用)https://mobsec-dianhua.baidu.com/dianhua_api/open/location?tel=XXXXXXXXXX网上最多的,但是在2020-4月不能使用了,啊哈哈哈哈,这个不能用,之前一直在使用,前几个月突然不能使用了,一定要多备几个。2,360提供的(良心推荐,精确到了省市)https://c.原创 2020-05-12 11:34:13 · 2422 阅读 · 0 评论 -
PHP数据导出CSV格式文件
前言: 之前在做数据导出功能时一直使用PHPexcel进行处理的,这个的功能还是比较强大的,但是比较沉重,在数据量比较打时,还是比较吃内存的。经常会遇到超时或者内存不足。解决方式都是网上的几种,百度google一大推,供参考。github传送地址https://github.com/PHPOffice/PHPExcel 由于就是数据导出,所以后面使用了导出csv格式数据,摒弃了PHPExcel。导出大量数据时可以将数据进行分批量的导出,防止数组内容过大占内存而导致的报错。...原创 2020-05-12 11:06:58 · 551 阅读 · 0 评论 -
PHPExcel在php7.4版本报错 ERR_INVALID_RESPONSE 问题
在PHP5.5环境下,可以正常使用PHPExcel进行数据导出。但是在PHP7.0以上的环境中使用是就会出现ERR_INVALID_RESPONSE 报错问题。解决方式:在网上查找时,都是 一下几种1,在调用save("php://output")之前调用ob_end_clean()2,PHPExcel\Calculation\Functions.php文件,删除掉581行的...原创 2020-04-10 18:40:05 · 5120 阅读 · 0 评论 -
随机生成不重复的字符和数字
/** *随机生成不重复的字符和数字 */function makeCDKey() { $code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; $rand = $code[rand(0,25)] .strtoupper(dechex(date('m'))) .date('d').substr(time(),-5) .substr(microtime...转载 2019-12-25 15:56:33 · 848 阅读 · 0 评论 -
PHP正则匹配内容中的img标签
preg_match_all('/<img(.*?)src=\"(.*?)\"(.*?)>/is', $content, $matches);matches[0] //整个img标签matches[2] //图片的url正则回顾:“$” 表示行结尾“^” 表示行开始 或者 表示排除不符合的字符,^一般放在[]中。如[^1-5],该字符不是1~5之间的数字。“|" ...转载 2019-12-11 10:30:35 · 1730 阅读 · 0 评论 -
PHP的GD库生成海报踩坑记一
问题:在使用GD库的函数 imagecolorallocate(),将文字放置在背景图上后,字体颜色呈现白色,设置的字体颜色不起作用。imagecolorallocate()函数返回false。解决方式:在使用imagecreatetruecolor来创建的图像可以,如果图像是8bit的,这样是不行的。将背景图像的位深度修改为非8bit即可。附上:8bit简介...原创 2019-10-24 09:33:41 · 585 阅读 · 0 评论 -
PHP下载图片
/** * 图片下载,压缩包形式 */ public function downloadPoster() { //$images格式为 '1.png','2.png' $title = input('title');//图片 $images = explode(',',$title); ...原创 2019-10-14 10:00:06 · 716 阅读 · 0 评论 -
PHP匹配关键字
$str = "/你大爷|你他|什么玩意|SB|/"; // 关键字正则字符串 $string = "你他干什么玩意了 SB"; // 文本字符串 echo preg_replace($str, "*", $string); //preg_replace() 执行一个正则表达式的匹配和替换...原创 2018-04-10 14:51:47 · 2933 阅读 · 0 评论 -
PHP四种基础算法详解
PHP四种基础算法详解许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣。作为一个初级phper,虽然很少接触到算法方面的东西 。但是对于冒泡排序,插入排序,选择排序,快速排序四种基本算法,我想还是要掌握的。需求:分别用 冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中 的值按照从小到的顺序进行排序。$arr=array(11,3,56,62,21,...转载 2019-04-24 22:28:08 · 138 阅读 · 0 评论 -
fopen写入文件
//得到回调的数据进行操作,得到全部数据Yii::$app->response->format=Response::FORMAT_JSON;$get_post_data = Yii::$app->request->post();$file = fopen('/var/tmp/qw_crm2019.txt','a+');if (is_array($get_post_...原创 2019-01-03 11:49:43 · 3728 阅读 · 0 评论 -
已知数组 ['a','b','d','a','b','c','b','d'] ,按照出现次数排序后变为['b','a','d','c'],请写出对应的函数
public function test_test() { $arr = ['a','b','d','a','b','c','b','d']; $res = []; foreach ($arr as $k => $v) { $res[$v] = 1; } var_dump($res); for ($i=0; $i < count($arr) ; $i+...原创 2018-11-26 17:56:21 · 768 阅读 · 1 评论 -
前后端跨域问题解决方式
由于安全的原因,浏览器做了很多方面的工作,由此也就引入了一系列的跨域问题,需要注意的是:跨域并非浏览器限制了发起跨站请求,而是跨站请求可以正常发起,但是返回结果被浏览器拦截了。最好的例子是 CSRF 跨站攻击原理,请求是发送到了后端服务器无论是否跨域!注意:有些浏览器不允许从HTTPS的域跨域访问HTTP,比如Chrome和Firefox,这些浏览器在请求还未发出的时候就会拦截请求,这是一个特...转载 2018-12-04 11:11:42 · 462 阅读 · 0 评论 -
preg_replace_callback函数的使用
return preg_replace_callback( '/<a .*?href="(.*?)".*?>/is', function($matches)use($article_id){ return $matches[1]; }, ...原创 2019-05-16 16:32:18 · 1125 阅读 · 1 评论 -
json_encode函数参数详解
json_encode($arr,448)等于设置了多个参数。448=64+128+256 64即不转换\ 128 不转换\n \r \t之类的空白 256中文输出JSON_UNESCAPED_SLASHES => 64JSON_PRETTY_PRINT => 128JSON_UNESCAPED_UNICODE => 256json_encode() 具体参数J...转载 2019-06-11 14:08:58 · 11273 阅读 · 0 评论 -
本地nginx只能打开首页,别的页面打不开
问题:配置完nginx后只能打开首页,别的页面打不开解决方式:location / { try_files $uri $uri/ /index.php?$query_string; if (!-e $request_filename){ rewrite ^/(.*) /index.php last; } }...原创 2019-07-15 10:54:49 · 2140 阅读 · 0 评论 -
PHP图片添加水印
/* * 功能:PHP图片水印 (水印支持图片) * @param str $groundImage 背景图片,即需要加水印的图片,暂只支持GIF,JPG,PNG格式; * @param str $waterPos 水印位置,有10种状态,0为随机位置; * 1为顶端居左...原创 2019-08-27 10:01:24 · 128 阅读 · 0 评论 -
正则匹配手机号码
preg_match ( "/^((13[0-9])|(14[5,7])|(15[0-3,5-9])|166|(17[0-3,5-8])|(18[0-9])|(19[1,3,8-9]))[0-9]{8}$/", $mobile )原创 2019-08-29 14:57:40 · 566 阅读 · 1 评论 -
PHP移除指定的html标签
$tags = ['div','script','style','object','iframe','embed','input','select','table','thead','th','td','tr'];public function deleteHtmlTags($tags,$string){ $preg = []; foreach ($tags as $key ...原创 2019-08-30 16:06:23 · 657 阅读 · 0 评论 -
windows下实现mysql主从复制
MySQL的主从复制是通过binlog日志来实现的,主从复制中的“主”指的是MySQL主服务器上的数据库,“从”指的是MySQL从服务器上的数据库,且这种复制是基于数据库级别的,为此从服务器中的数据库名称必须和主服务器中的数据库名称保持一致,那么,要想实现主从复制,我们至少要有两个MySQL服务器(最好是两个MySQL服务器分别位于不同的主机上,或者在一个主机上安装两个MySQL,端口不同即可)...原创 2018-08-03 14:48:22 · 309 阅读 · 0 评论 -
PHP捕获异常
//创建可抛出一个异常的函数function checkCash($number){ if($number != 1){ throw new Exception("状态不等于1抛出异常"); } return true;}//在 "try" 代码块中触发异常try{ //使用0去触发异常 checkCash($ret_arr['status']);}//...原创 2018-04-25 15:14:22 · 875 阅读 · 0 评论 -
PHP比较运算符
原创 2018-05-02 13:38:50 · 488 阅读 · 0 评论 -
红包随机随机金额产生
/*** 随机红包的金额生产* @param total float 总金额* @param num float 数量* @param min float 每个人最少能收到0.01元 * @return float 随机钱**/function usergrab($total, $num, $min = 0.01)//随机生成红包{ $total;//红包总额 $...原创 2018-04-13 14:23:36 · 720 阅读 · 0 评论 -
php图片生成圆角
/** * @param string $imgpath 源图片路径 * @param integer $radius 圆角半径长度默认为15,处理成圆型 * @return [type] [description] */ function radius_img($imgpath = './t.png', $radius = 15) {...原创 2018-04-12 15:21:13 · 929 阅读 · 0 评论 -
PHP将处理图片为圆角
/** * 处理成圆图片,如果图片不是正方形就取最小边的圆半径,从左边开始剪切成圆形 * @param string $imgpath [description] * @return [type] [description] */ function yj_img($imgpath = './yj.jpg') { $ext = pat...原创 2018-04-12 15:09:06 · 2358 阅读 · 0 评论 -
微信支付
微信支付,支持的支付方式比较多:有扫码支付,刷卡支付,APP支付和公众号支付。其中,APP和网站上最常用的就是APP支付和公众号支付。前者集成在APP中,后者主要是为微信用户提供了另一种支付方式(需要在微信的内置浏览器中打开页面,再调起微信支付)。同样的,微信的APP支付和支付宝的APP支付也是很简单:APP支付商户系统和微信支付系统主要交互说明:步骤1:用户在商户APP中选择商品,提交订单,选择...转载 2018-04-04 16:57:28 · 390 阅读 · 0 评论 -
PHP尖括号替换
$content = '&lt;哈哈&gt;';$content = str_replace(array('&quot;', '&lt;', '&gt;'), array('"', '<', '>'), $content);var_dump($content);原创 2018-04-10 20:02:14 · 1776 阅读 · 0 评论 -
php关键字过滤
<?phpclass TrieTree{ public $tree = array('我','过'); /** * 增加关键词到字典树 * * @param string $utf8_str */ public function add($utf8_str) { $chars = &UTF8...转载 2018-04-09 16:41:06 · 1312 阅读 · 0 评论 -
PHP生成语音
<?php /** * 测试语音 */ require '../common.inc.php'; require DT_ROOT.'/api/speech/AipSpeech.php'; $client = new AipSpeech(APP_ID, API_KEY, SECRET_KEY); $result = $client->synthesi...原创 2018-04-14 15:07:35 · 1673 阅读 · 0 评论