戴国进
往后余生,专注人工智能领域!!!
展开
-
php 操作 ffmpeg 类,实现视频加文字\加水印\裁剪等功能
<?php/** * video class * written: denny Date :2020-06-15 */class Mpeg{ public $sowarePath = ""; public $ffmpegCmd = "ffmpeg "; public $ffprobeCmd = "ffprobe "; function __construct($sowarePath=''){ if (!function_exists('.转载 2021-10-19 15:17:47 · 1292 阅读 · 0 评论 -
PHP 四个执行系统命令函数:exec()、passthru()、system()、shell_exec()
php提供4种方法执行系统外部命令:exec()、passthru()、system()、 shell_exec()。在开始介绍前,先检查下php配置文件php.ini中是有禁止这是个函数。找到 disable_functions,配置如下:disable_functions =如果“disable_functions=”后面有接上面四个函数,将其删除。默认php.ini配置文件中是不禁止你调用执行外部命令的函数的。方法一:exec()function exec(string原创 2021-10-19 11:33:09 · 1103 阅读 · 0 评论 -
php json_decode解析失败及错误处理
一般情况下,获取到一段json内容,直接json_decode($content, true)就转成array来用了,很方便。但是,如果给你提供json内容的接口出了点问题,给的json不标准或是干脆有错误,那就要想办法来找出问题了。先看看json_encode的 php官方文档源码:http://cn2.php.net/manual/en/...失败时返回NULL<?php// $json = '{"a":1,"b":2,"c":3,"d":4,"e":5, "name":".转载 2021-10-14 19:19:20 · 4249 阅读 · 0 评论 -
fileinfo代替mime_content_type函数
php5.3.0以下要获得文件的mime类型,一般的方法是使用mime_content_type()方法,不过这个方法已经过时,所以最好使用fileinfo来代替。Linux环境下安装fileinfo拓展可以参考:php7 安装mysqli扩展遇到的坑及解决办法_JineD的博客-优快云博客步骤都差不多,不展开细讲: 测试代码如下:// 来获得magic文件的绝对路径$magicFile = get_cfg_var('magic_mime.magic')...原创 2021-09-29 09:44:21 · 670 阅读 · 0 评论 -
PHP json_encode 返回 Malformed UTF-8 characters, possibly incorrectly encoded 问题
Malformed UTF-8 characters, possibly incorrectly encoded这个错误一般就是utf-8编码中有些特殊中文转码乱码导致的。重新转一次utf-8就好了。mb_convert_encoding( $str, 'UTF-8', 'UTF-8,GBK,GB2312,BIG5' );其他:有时候sub_str()截取中文字符串也会报错,使用 mb_substr()代替...原创 2021-09-09 17:44:57 · 2790 阅读 · 0 评论 -
PHP 通过等比例缩小分辨率 - 压缩图片到指定的KB
在前面的一篇文章 “Logstash:处理多个input” 中,我们介绍了如何使用在同一个配置文件中处理两个 input 的情况。在今天这篇文章中,我们来介绍如何来处理多个配置文件的问题。对于多个配置的处理方法,有多个处理方法:多个 pipeline一个 pipleline 处理多个配置文件一个 pipeline 含有一个逻辑的数据流,它从 input 接收数据,并把它们传入到队列里,经过 worker 的处理,最后输出到 output。这个 output 可以是 Elasticsearch 或.原创 2021-08-12 11:54:39 · 1275 阅读 · 0 评论 -
php多层数组与对象的转换 3 种实现方式
1. //PHPstdClassObject转array functionobject_array($array){ if(is_object($array)){ $array=(array)$array; } if(is_array($array)){ foreach($arrayas$key=>$value){ $array[$key]=object_ar...原创 2021-06-16 14:41:45 · 1328 阅读 · 0 评论 -
php 解决Chrome Cookie 的 SameSite 属性导致无法写入cookie问题
今天在做前后端分离项目的时候遇到了这样一个问题。设置了与跨站点资源http://www.****.com/关联的cookie,但没有设置' SameSite '属性。在未来的Chrome版本中,只有当跨站请求设置为“SameSite=None”和“Secure”时,才会发送cookie。您可以在应用程序>存储> cookies下查看开发工具中的cookie,并在https://www.chromestatus.com/feature/5088147346030592和https://www.c原创 2021-06-10 16:54:26 · 5553 阅读 · 2 评论 -
php定义空对象的几种方式
<?php$obj1 = new \stdClass; // Instantiate stdClass object$obj2 = new class{}; // Instantiate anonymous class$obj3 = (object)[]; // Cast empty array to objectvar_dump($obj1); // object(stdClass)#1 (0) {}var_dump($obj2); // object(class@anonymous).原创 2021-06-02 09:42:16 · 1771 阅读 · 0 评论 -
strtotime 详解
echo strtotime("+1 year"); //返回的是时间戳echo strtotime("now"), "\n"; echo strtotime("10 September 2000"), "\n";echo strtotime("+1 day"), "\n";echo strtotime("+1 week"), "\n";echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";echo strtotim.原创 2021-04-09 14:56:08 · 2210 阅读 · 0 评论 -
PHP 通过内置时间函数 date、DateTime、strtotime 和 mktime 等实现获取本月最后一天日期
php date 函数格式化t 指定月份的天数; 如: “28” 至 “31”$date = '2018-08-08';echo date('Y-m-t',strtotime($date));strtotime 字符串时间修饰词last day of this month 时间字符 类似我们常说的 -1 dayecho date('Y-m-d',strtotime("last day of this month",strtotime('2018-02-01')));echo date原创 2021-02-27 11:09:21 · 2446 阅读 · 0 评论 -
PHP 8.0
经历了近半年的alpha版本测试后,PHP在2020年11月26号正式发布了8.0版本:https://www.php.net/releases/8.0/en.php今天我们就来浏览一下PHP 8.0中出现的主要特性,以及它给我们安全研究人员带来的挑战。命名参数 Named ArgumentsPHP 8 以前,如果我们需要给一个函数的第N个参数传参,那么这个参数前面的所有参数,我们都需要传参。但是实际上有些参数是具有默认值的,这样做显得多此一举。比如,我们要给htmlspecia..转载 2020-11-27 21:29:28 · 5604 阅读 · 0 评论 -
php is_int(),is_integer(),is_numeric(),ctype_digit() 这几个判断是否为数值函数的区别
这几个函数是开发中经常遇到的,检查整数类型数据。简单介绍下区别和关系1.is_integer 是 is_int() 的别名,是一样的2.is_int/is_integer主要是判断变量是否 是整数类型,其他类型是false3.is_numeric 检测变量是否为数字或数字字符串<?phpvar_dump(is_int(23)); //truevar_dump( is_int('23')); //falsevar_dump(is_numeric(23)); //true...转载 2021-02-01 11:56:26 · 3501 阅读 · 0 评论 -
PHP四舍五入精确小数位及取整
经常用到取整的函数,今天小小的总结一下!其实很简单,就是几个函数而已~~主要是:ceil,floor,round,intval一、ceil -进一法取整float ceil ( float value )返回不小于 value 的下一个整数,value 如果有小数部分则进一位。ceil() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。代码如下:<?phpecho ceil(4.3); // 5echo ceil(9.99..原创 2021-01-26 20:07:50 · 3876 阅读 · 0 评论 -
修改PHP和nginx上传文件大小限制
添加 client_max_body_size 10M (必须要放在server下的server_name下,而不是放在localhost /web的大括号里)原创 2020-07-02 09:24:41 · 9209 阅读 · 0 评论 -
centos7配置nginx与php开机自启动
查看 rc.local文件权限ll /etc/rc.d/rc.local如果权限已提升不需执行第二步直接进行第三步即可提升rc.local文件权限chmod +x /etc/rc.d/rc.local在rc.local文件中写入程序启动路径/usr/local/nginx/nginx/usr/local/php/sbin/php-fpm重启服务器并查看端口reboot 重启服务器服务器启动后查看端口 ss -ant...原创 2020-12-23 17:17:25 · 3772 阅读 · 0 评论 -
php 日期时间 根据 指定时区进行转换 及 DateTime类使用详解
方法:<?php/* * 时区转换 */function toTimeZone($src = '2021-01-14 00:00:00', $from_tz = 'America/Denver', $to_tz = 'Asia/Shanghai', $fm = 'Y-m-d H:i:s') { $datetime = new DateTime($src, new DateTimeZone($from_tz)); $datetime->setTimezone(ne.原创 2021-01-14 16:12:11 · 5503 阅读 · 0 评论 -
php file_get_content获取资源时添加header请求头
<?php $context_options = array( 'http' => array( 'method' => "GET", 'header' => "User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.11.原创 2021-01-06 20:41:08 · 6049 阅读 · 0 评论 -
PHP fwrite和file_put_contents 性能对比测试
先给结论:问题到此还未结束,PHP程序不会连续打非常多的日志记录。一般来说,PHP程序遇到异常,输出一条文件日志,然后就结束了。那么这种情况,应该如何选择?其实从strace的结果已经很明显了,fwrite和file_put_contents系统调用的结果是一样的,而且file_put_contents调用简单,而且是一次php调用,可以节省函数变量传递。因此,在一般情况下,使用file_put_contents是一个不错的选择。一、性能测试先和大部分的文章一样,从性能的方式入手:<?p原创 2020-12-12 20:19:31 · 5174 阅读 · 0 评论 -
PHP7引入的“??“和“?:“的区别讲解
2020.12.08 踩的坑,记录一下:$a ?? 0 等同于 isset($a) ? $a : 0。 $a ?: 0 等同于 $a ? $a : 0。 empty: 判断一个变量是否为空(null、false、00、0、'0′、』这类,都会返回true)。 isset: 判断一个变量是否设置(值为false、00、0、'0′、』这类,也会返回true)。...原创 2020-12-08 20:40:58 · 4689 阅读 · 0 评论 -
文件夹对比代码
<?phpheader('Content-Type:text/html; charset=GBK');echo 'res=';$tagsDir = 'D:\work_space\svnout\tags_site3'.'\\'; //配置检出的tag路径//配置不发布的版本$unreleased_arr = array('C2b_V3.9.8(统计代码)','C2b_V5.0.5(PC官网1.2.3)','C2b_V5.0.7 (周年庆)');//配置待发布的版本$upcoming.原创 2020-11-27 21:35:10 · 4958 阅读 · 0 评论 -
PHP 中的 use function是什么意思
参考官方文档:https://www.php.net/manual/en/language.namespaces.importing.php作用:1、主要作用是为了引用命名空间2、主要目的是为了防干扰。代码示例:<?phpnamespace App { // 当前在 App 命令空间下定义了一个 array_map 方法, function array_map(string $func, array $array) { var_dum原创 2020-11-24 09:30:17 · 6594 阅读 · 0 评论 -
PHP token的生成算法
md5 的方式: 1 2 3 4 $v= 1;// 自己定义的 需要hash 的value 值 $key= mt_rand();// 这里用 随机串作为key $hash= md5($key.$v. mt_rand() . time()); echo$hash; 执行结果:b63426a38f86b726ce0d327d48e47376看着不是很舒服, 作为强迫症的我 是受不了的.md5 +...原创 2020-11-19 20:56:08 · 6155 阅读 · 0 评论 -
PHP中申明 declare(strict_types=1)的作用
strict_types=1 针对参数类型开启严格模式,进行数据类型检验,默认是弱类型校验哪个文件写了declare,哪个文件中的所有代码就需要检查declare(strict_types=1); function foo():int{ return 1.11;} echo foo();...原创 2020-11-18 20:36:00 · 7315 阅读 · 0 评论 -
有空必看 - PHP错误与异常处理
请一定要注意,没有特殊说明:本例 PHP Version < 7 说起PHP异常处理,大家首先会想到try-catch,那好,我们先看一段程序吧:有一个test.php文件,有一段简单的PHP程序,内容如下,然后命令行执行:php test.php<?php $num = 0; try { echo 1 / $num; } catch (Exception $e) { echo $e->getMessage(); } ?>我的问题是:这段程序能正确的.原创 2020-11-05 21:45:13 · 5062 阅读 · 0 评论 -
php 对比两个数组中的值是否相等
$a = ['1','2','4','3'];//提交答案$b = ['2','1','3'];//正确答案$state = $this->diffArray($b, $a);echo '<pre>';print_r($state);die; /** * 以第一个参数为主进行进行比较 * **/ public function diffArray($arr1 , $arr2 ){ $arrRet = array(); .原创 2020-09-21 14:17:49 · 8553 阅读 · 0 评论 -
php 由ttf字体文件生成png预览图
python实现代码请参考我的另一篇博文:https://blog.youkuaiyun.com/JineD/article/details/106622398<?php/** * Created by graph-design-api. * AUTHOR: daiguojin * Date: 2020/9/16 9:40 *///header("Content-type: image/png");// The text to draw$text = 'ABeeZee';// Repla原创 2020-09-16 13:49:25 · 7389 阅读 · 0 评论 -
PHP-根据字符串和所用字体计算字符串所占宽高
python实现代码请参考我的另一篇博文:https://blog.youkuaiyun.com/JineD/article/details/106622398今天由于用GD画图, 需要把一段文字在一个框内居中, 但是文字的宽度如果用strlen($str) * $font_size来计算的话, 由于文字不是等宽高的, 所以会导致偏离, 最后选用的GD库的imagettfbbox()函数, 其原型如下array ImageTTFBBox(int size, int angle, string fontfile原创 2020-09-16 10:09:15 · 8937 阅读 · 1 评论 -
php hexdec超大数值的16进制转10进制
使用php内置的hexdec函数在把超大的十六进制转换到十进制整型表示时,结果值如果超出平台整型的最大值时,可能会丢失精度,比如0xFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF在Python中,使用int(‘FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF’, 16)计算结果是1157920892103562487564203原创 2020-09-03 09:22:14 · 8772 阅读 · 0 评论 -
php cli模式下获取参数的方法
错误:configure: error: libevent >= 1.4.11 could not be found解决:yum -y install libevent libevent-devel错误:configure: error: Please reinstall the mysql distributio解决:yum -y install mysql-devel错误:make: *** [sapi/fpm/php-fpm] error 1解决:用make ZEND_EXTRA_LI原创 2020-09-03 09:21:20 · 7695 阅读 · 0 评论 -
php 实现svg转化png格式的方法分析
本文实例讲述了php 实现svg转化png格式的方法。分享给大家供大家参考,具体如下:svg转png实现1.php imagick扩展插件a.研究imagick插件方法 1 2 3 4 5 6 7 8 9 10 11 $im = new Imagick($upload_path . $file_name); $svg = file_get_contents($upload_pa原创 2020-08-28 21:21:14 · 8746 阅读 · 0 评论 -
php截取文件后缀的几种方法
方式1 explode()函数 //字符串转换成数组 $arr = explode('.',$file); echo $arr[count($arr)-1]; 方式2 strrpos()函数 //最后一次出现位置 echo substr($file, strrpos($file, '.')+1); 方式3 strrchr()函数 //最后一次出现的位置 echo substr(strrchr($file,'...原创 2020-08-27 21:42:18 · 8758 阅读 · 0 评论 -
PHP 解决 mkdir() Permission Denied 的问题
具体命令为:1、通过 ps -ef |grep php 命令查看php的执行用户是哪一个。 这里是 www2、给web目录增加对应的用户和组: chown -R www:www /path/server/web3、给www用户组增加 rw权限: chmod -R g+rw /path/server/web...原创 2020-08-18 12:02:20 · 10424 阅读 · 0 评论 -
php 图片处理相关函数
1.创建图像函数imagecreatefrom*( )从*文件或 URL 新建一图像imagecreatefromgif( ): 根据GIF文件或者URL新建一个图像,返回图像标识符。imagecreatefromjpeg( ): 根据JPG文件或者URL新建一个图像,返回图像标识符。imagecreatefrompng( ): 根据PNG文件或者URL新建一个图像,返回图像标识符。imagecreatefrombmp( ): 根据BMP文件或者URL新建一个图像,返回图像标识符。原创 2020-08-02 12:12:33 · 8382 阅读 · 0 评论 -
php 字符串处理函数
一、字符串的处理1.使用多参数来输出多个字符串的输出结果与使用字符串连接符“.”的结果完全相同。以下代码是一个使用echo输出多个参数的例子。 <?php echo “test” , “it” ,” “/n” ; echo “test” . “it” . “/n” ; ?>上面的例子输出了两行”test it”。echo与print基本上与print相同,但是有以下两点区别:使用print函数形式返回仁政为...原创 2020-08-02 12:11:24 · 8435 阅读 · 0 评论 -
PHP运算符优先级(必须牢记)
PHP的运算符在运算中遵循的规则是:优先级高的运算先执行,优先级低的操作后执行(下面的表格左边的数字越大越先执行),同一优先级的操作按照从左到右的顺序进行。也可以像四则运算那样使用小括号,括号内的运算最先进行。PHP运算符优先级如下表所示。()案例1:$i = 2; echo $i == 2 ? "A" : $i == 1 ? 'B' : 'C'; //答案是B ,解释一下为什么?是运算符的优先级吗?三元运算符的优先级是从左到右的,因此上面顺序是:$i = 2;先...原创 2020-08-02 11:58:22 · 12774 阅读 · 2 评论 -
本地测试 php curl 请求为什么会慢
本地开发接口时,有时候会curl请求同一个站点进行测试,这个时候会非常慢甚至504,主要原因是因为本地只启用了一个cgi进行web请求处理,curl时占用了cgi进程,被curl的请求一直在等待curl处理完毕,而curl请求一直在等待信息返回,从而造成了“死锁”现象。解决方案:一、从php-cli发出请求,如 php curl.php二、再开一个cgi,window下开启cgi :.\php-cgi.exe -b 127.0.0.1:9001 -c .\php.ini...原创 2020-08-01 18:21:51 · 9403 阅读 · 0 评论 -
PHP mkdir() 第二个参数是 0777,但新建的目录依然无写权限的问题
函数mkdir前两个参数,目录路径和访问权限 例mkdir('/tmp/test',0777) 然后要得到的权限码,不一定是上边设定的,当前系统的umask将会与设定的值‘与’,这样子才是真正的权限码,例如,如果umask为022,那码上边得到的权权限码为0755,没有写的权限 所以如果我们想要真正的得到0777的权限,代码:<?php $oldumask=umask(0); mkdir('test',0777); umask($oldumask);原创 2020-08-01 18:18:44 · 9535 阅读 · 0 评论 -
常见的PHP漏洞 - 字符串与0比较是相等的、md5加密漏洞等等
今天踩的坑,查了资料整理如下,一定要记住:不同变量类型进行比较的时候,PHP有内部机制进行转换,再加以比较:‘test‘== 0是把 ’test‘转化成整型再进行比较,所以结果就是 true 了。如果不熟悉内部机制,在比较之前,尽量自己转化为相同类型再进行比较。比较安全的做法就是用 === (三个等于号),这样不仅比较内容,还比较类型,如果类型不一致就按 false 处理。...原创 2020-07-28 20:03:32 · 8970 阅读 · 0 评论 -
索引带下划线的数组转换为驼峰式索引命名的数组
写接口代码的时候经常要统一驼峰式命名返回。但数据库又是以下划线命名的字段。以下代码直接将数组转为驼峰式命名的数组。不管是几维数组。分享给大家/* * 将下划线命名数组转换为驼峰式命名数组 * @pram $arr 原数组 * @pram $ucfirst 首字母大小写,false 小写,TRUE 大写 */ public static function camelCase($arr,$ucfirst = FALSE) { if (!is_array($arr)) { ..转载 2020-07-08 09:45:03 · 9174 阅读 · 0 评论