php
Aring88
大学期间虚晃已过,后经历社会变迁、人情世故、历经风雨,心底仍有阳光。肃然重拾知识,从小做起,一步一步,想靠自己,在这社会中卑微倔强的存活
展开
-
getimagesize()函数获取图片宽高取反
背景:手机摄像头朝下拍摄,上传后,getimagesize()获取图片信息会把宽高去反,面对这种情况有以下方法。一、情况exif_read_data()exif_read_data()函数是能获取图片详细摄像信息,包括GPS信息,所以以后图片上传前最好还是进行二次处理。Array( [0] => 2304 [1] => 1728 [2] => 2 [3] => width="2304" height="1728" [bits]原创 2022-04-21 23:19:50 · 829 阅读 · 0 评论 -
php添加水印
php图片水印操作原创 2022-04-17 18:30:20 · 819 阅读 · 0 评论 -
linux安装imageMagick以及安装php扩展
linux安装imageMagick以及安装php扩展原创 2022-04-17 17:43:37 · 1421 阅读 · 2 评论 -
Hyperf-跨域问题
一、传统框架中在传统框架中一般来说有两种方案1,例如laravel入口文件index.php中加上允许跨域代码2,通过nginx反向代理header('Access-Control-Allow-Origin:*');if($_SERVER['REQUEST_METHOD'] == 'OPTIONS'){ header('Access-Control-Allow-Methods: GET,POST,PUT,DELETE,OPTIONS,PATCH'); // 设置是否允许发送 co原创 2021-07-27 16:26:27 · 2439 阅读 · 0 评论 -
PHP-通用原生模拟Post请求
/** * 模拟post提交 * @param $json * @param $url * @return mixed */ public static function http_post_json($json,$url) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch,.原创 2021-07-15 16:59:05 · 267 阅读 · 2 评论 -
PHP-原生发送邮箱验证码
/** * 发送邮件 * @param $address * @param $subject * @param $message * @return array * @throws \PHPMailer\PHPMailer\Exception */ public static function send_email($address,$message){ $mail=new PHPMailer(true);原创 2021-07-15 16:57:37 · 545 阅读 · 0 评论 -
php正则规则
正则表达式的基本语法一个正则表达式,分为三个部分:分隔符,表达式和修饰符。分隔符可以是除了特殊字符以外的任何字符(比如"/ !“等等),常用的分隔符是”/"。表达式由一些特殊字符(特殊字符详见下面)和非特殊的字符串组成,比如"[a-z0-9_-]+@[a-z0-9_-.]+“可以匹配一个简单的电子邮件字符串。修饰符是用来开启或者关闭某种功能/模式。下面就是一个完整的正则表达式的例子:/hello.+?hello/is上面的正则表达式”/“就是分隔符,两个”/“之间的就是表达式,第二个”/“后面的字符原创 2021-06-24 11:59:20 · 713 阅读 · 0 评论 -
文本识别标题后分割_php版
文本识别章节,分割一、思路二、文件上传三、文件分割四、正则识别章节标题五、获取章节标题行数六、根据章节行号分割文件七、入库、做记录因为项目有需求,整本小说上传之后自动识别章节目录,然后库存入库。所以就思考如何实际操作。一、思路1,文件上传,这个基础了。另外,文件上传的大小,在php.ini可以设置,但是最后决定上传的大小的,是postmax的设置。2,获取文件,然后将其读取,若文件太大,就将其分割3,正则识别章节标题内容,然后记录下来4,将文件按行读取匹配章节标题,记录行数原创 2021-07-04 02:53:22 · 611 阅读 · 5 评论 -
php-mysql连接池
实现思路: 懒汉模式1,判断是否连接类是否够设定上限2,池子充足就返回mysql链接类class MysqlPool{ private static $instance=[]; private function __construct(){} //防止外部创建新的数据库连接类 public static function Connect($table){ //连接类不够100,创建新类 if (count(self::$insta原创 2021-07-02 15:43:22 · 650 阅读 · 0 评论 -
php-多线程
php-多线程PHP多线程优势:php开启多线程1,安装pthread 扩展2,必须使用 --enable-maintainer-zts 参数重新编译 PHP,这个参数是指定编译 PHP 时使用线程安全方式3,线程安全问题:4,PHP线程安全实现:5,Thread类方法:例子:PHP多线程优势:I/O 阻塞会使操作系统发生任务调度,阻塞当前任务,所以代码中 I/O 多的情况下,使用多线程时可以将代码并行。例如多次读整块的文件,或请求多个网络资源。多线程能充分利用 CPU,有多处大计算量代码时php开原创 2021-07-02 15:41:56 · 875 阅读 · 0 评论 -
Hyperf的jsonRPC简易教程
一,provider(服务提供者)1,建立方法接口类(1)在app目录下建立jsonRpc目录(2)新建项目接口类2,实现接口类的方法3,在service 添加rpc服务二、consumer(服务消费者)1,在app目录下新建rpc目录2,添加provider的方法接口类3,在config/autoload目录下修改services文件(没有就新建)添加相关配置name 对应rpc服务名称service对应rpc接口类nodes对应rpc服务的地址4,控制类直接实现接原创 2021-04-12 10:46:26 · 946 阅读 · 0 评论 -
PHP特性——Trait
Trait是PHP 5.4引入的新概念,看上去既像类又像接口,其实都不是,Trait可以看做类的部分实现,可以混入一个或多个现有的PHP类中,其作用有两个:表明类可以做什么;提供模块化实现。Trait是一种代码复用技术,为PHP的单继承限制提供了一套灵活的代码复用机制。为什么使用TraitPHP语言使用一种典型的单继承模型,在这种模型中,我们先编写一个通用的根类,实现基本的功能,然后扩展这个根类,创建更具体的子类,直接从父类继承实现。这叫做继承层次结构,很多编程语言都使用这个模式。大多数时候这种典...转载 2021-03-29 11:34:15 · 314 阅读 · 0 评论 -
PHP_文件相关操作
PHP_文件相关操作一、创建文件1,打开文件2,逐行读取文件(EOF)3,逐个字符读取文件4,文件末尾5,移动文件二、文件上传1,$_FILES2,上传简易脚本一、创建文件php打开文件便是创建文件1,打开文件fopen()参数描述r只读。在文件的开头开始。r+读/写。在文件的开头开始。w只写。打开并清空文件的内容;如果文件不存在,则创建新文件。w+读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。a追加。打开并向文件末尾进行写操原创 2021-01-29 12:15:52 · 91 阅读 · 0 评论 -
PHP闭包函数用法
PHP闭包函数用法一、闭包二、闭包使用1,匿名函数2,作为回调函数三,附加状态1).注意PHP闭包不会真的像JS一样自动封装应用的状态,在PHP中必须调用闭包对象的bindTo方法或者使用use关键字,把状态附加到PHP闭包上。2).使用use关键字可以把多个关键字传入闭包,此时要想像PHP函数或方法的参数一样,使用逗号分割多个参数。3).PHP闭包仍然是对象,可以使用$this关键字获取闭包的内部状态。闭包的默认状态里面有一个__invoke()魔术方法和bindTo()方法。4).bindTo()方法为原创 2021-01-25 17:49:47 · 524 阅读 · 0 评论 -
Yii 框架Model和ActiveRecord 的区别
AtiveRecord 是继承自Model的,Model有的ActiveRecord 都有。Active Record (活动记录,以下简称AR)提供了一个面向对象的接口, 用以访问数据库中的数据。一个 AR 类关联一张数据表, 每个 AR 对象对应表中的一行,对象的属性(即 AR 的特性Attribute)映射到数据行的对应列。 一条活动记录(AR对象)对应数据表的一行,AR对象的属性则映射该行的相应列。 您可以直接以面向对象的方式来操纵数据表中的数据Active Record (活动记录,以下简称原创 2020-09-28 11:22:19 · 404 阅读 · 0 评论