php
文章平均质量分 60
chenrui310
这个作者很懒,什么都没留下…
展开
-
文章分页逻辑原生源码,PHP后端+html
文章分页逻辑原生源码,PHP后端+html原创 2023-03-09 14:21:19 · 196 阅读 · 0 评论 -
PHP使用 FormBuilder 创建表单
FormBuilder原创 2022-08-29 14:46:14 · 615 阅读 · 0 评论 -
PHP基于ORM方式操作MySQL数据库实例
ORM 对象关系映射,O(Object) 对象,在项目中就是实体,更加精确的来说就是数据Model,也可以说持久化类。R(Relation) 关系数据,M (Mapping)映射,将对象映射到关系数据,将关系数据映射到对象的过程。更加直观理解就是,ORM 就是以OOP思想,产生增删改查SQL语句。本文实例讲述了PHP基于ORM方式操作MySQL数据库。分享给大家供大家参考,具体如下...原创 2019-08-26 13:03:15 · 352 阅读 · 0 评论 -
php底层原理之垃圾回收机制(版本一)
php底层原理之垃圾回收机制php垃圾回收机制,对于PHPer来说是一个不陌生但是又不是很熟悉的内容。那么php是怎么实现对不需要的内存进行回收的呢?php变量的内部存储结构首先还是需要了解下基础知识,便于垃圾回收原理内容的理解。大家都知道php是由C编写而成的,所以php变量的内部存储结构也会和C语言相关,即zv...原创 2019-08-14 14:58:47 · 246 阅读 · 0 评论 -
PHP内核的存储机制(分离/改变)
前言:大部分程序员看博客可能不是太喜欢看汉字比较多的文章哈,但本文确实介绍以汉字为主描述,耐心看完,对大部分人来说肯定会有收获!或许你知道,或许你不知道,PHP是一个弱类型,动态的脚本语言。所谓弱类型,就是说PHP并不严格验证变量类型(严格来讲,PHP是一个中强类型语言),在申明一个变量的时候,并不需要显示指明它保存的数据的类型。比如:$a = 1; (整形) $a ="1";(字符串)一...转载 2019-08-14 14:53:47 · 171 阅读 · 0 评论 -
PHP 常用的header头部定义汇总(转)
<?phpheader('HTTP/1.1 200 OK');// ok 正常访问header('HTTP/1.1 404 Not Found');//通知浏览器 页面不存在header('HTTP/1.1 301 Moved Permanently');//设置地址被永久的重定向 301header('Location:http://www.ithhc.cn/...转载 2019-05-27 13:31:19 · 168 阅读 · 0 评论 -
thinkphp3.2 cli模式的正确使用方法(2019-04-08修改)
最近要使用thinkphp3.2版本的cli模式,手动执的话没有问题,比如php /www/index.php home/article/get 这样没有问题,但是一般用cli模式都是定时任务比较多,这个时候写到定时任务的时候,比如 0 * * * * * php /www/index.php home/article/get 这样就会出现引入ThinkPHP.php失败的问题,这个问题算是比较容...原创 2019-04-08 17:20:49 · 349 阅读 · 1 评论 -
php解耦的三种境界
我们有三个类,Db,FileSystem,Session;实际业务需求要组合操作这三个类. 一.常规做法class Db{ public function read($id) { }} class FileSystem{ public function writeFile($file) { }} cla...转载 2019-02-27 16:50:07 · 203 阅读 · 0 评论 -
php字符串去掉中文
<?php$a = "<a>河蟹社会afeowahgieawhjozf候蛇fawgwea维稳aghoiawghowi我日</a>";$result = preg_replace('/([\x80-\xff]*)/i','',$a);var_dump($result);正则表达式中/i,/g,/ig,/gi,/m的区别和含义/i (忽略大小写)/g ...转载 2018-10-15 09:49:35 · 5889 阅读 · 0 评论 -
php通用安装程序,php项目安装程序
文件目录结构│index.php 程序首页│ ├─conf 安装后配置文件目录├─data 目录写入测试目录└─install 安装程序目录 │ index.php 安装程序主文件 │ step_0.php 安装过程模版文件 │ step_1.php 同上 │ step_2.php 同上 │ ...转载 2018-09-28 15:35:04 · 622 阅读 · 0 评论 -
PHP 高级编程之多线程(手册版)
1.多线程环境安装1.1.PHP 5.5.9安装PHP 5.5.9https://github.com/oscm/shell/blob/master/php/5.5.9.sh./configure --prefix=/srv/php-5.5.9 \--with-config-file-path=/srv/php-5.5.9/etc \--with-config-file-...转载 2019-08-23 16:50:50 · 528 阅读 · 0 评论 -
2019PHP面试题大全(中级知识一)
一、PHP开发部分1.合并两个数组有几种方式,试比较它们的异同答:1、array_merge()2、’+’3、array_merge_recursivearray_merge 简单的合并数组array_merge_recursive 合并两个数组,如果数组中有完全一样的数据,将它们递归合并array_combine 和 ‘+’ :合并两个数组,前者的值作为新数组的键...转载 2019-08-23 17:13:31 · 15775 阅读 · 0 评论 -
多线程编程 - PHP 实现
前言前些天帮同事查一个问题,第一次接触到了 PHP 的多线程,原以为 PHP 普遍都是单线程模型,并不适合多线程领域,花些时间翻了几个多线程的项目源码之后,发现 PHP 的多线程也颇有可取之处,活用起来,用来解决某些问题竟然非常适合。于是找了几篇文章看了下 PHP 多线程TSRM机制的实现,也有所收获,详情可以查看下面的参考文章。本文对比多进程介绍了下多线程的优势和适用场景,提出了一种...转载 2019-08-23 15:47:08 · 161 阅读 · 0 评论 -
php curl 代理ip访问url封装和解说
网上很多代理ip来访问url,具体干什么大家都知道,直接上代码:$header //请求头$cookie //存储cookie$arrip //代理IP的地址及端口$params //参数 你要提交的$method //请求方式(GET,POST)public function dorequest($arrip = array(),$url,$header,$timeo...原创 2019-09-16 13:45:19 · 957 阅读 · 0 评论 -
面向切面编程(AOP)的理解
在传统的编写业务逻辑处理代码时,我们通常会习惯性地做几件事情:日志记录、事务控制及权限控制等,然后才是编写核心的业务逻辑处理代码。当代码编写完成回头再看时,不禁发现,扬扬洒洒上百行代码中,真正用于核心业务逻辑处理才那么几行,如图6-4所示。方法复方法,类复类,就这样子带着无可奈何遗憾地度过了多少个春秋。这倒也罢,倘若到了项目的尾声,突然决定在权限控制上需要进行大的变动时,成千上万个方法又得一一"登...转载 2019-09-16 13:42:30 · 182 阅读 · 0 评论 -
PHP 框架中的 AOP(切面编程)thinkphp5.0,yii2
本文介绍如何在thinkphp 5.0+中自定义标签拦截器(即自定义AOP行为)1、定义一个Behavior处理器\application\index\behavior\Privilege.phpnamespace app\index\behavior;class Privilege{ public function run() { //...转载 2019-09-16 10:54:28 · 1665 阅读 · 0 评论 -
PHP内核--探究内存管理与缓存机制(版本二)
前言:PHP在运行时所需的内存,是一次性向操作系统申请开辟的,而不是分多次。那他是怎么样一次性申请呢,机制又是如何?请看下边介绍。heap层是PHP内存管理的核心实现,PHP底层对内存的管理, ZendMM向系统进行的内存申请,并不是有需要时向系统即时申请, 而是由ZendMM的最底层(heap层)先向系统申请一大块的内存, 建立一个类似于内存池的管理机制,unset后,ZendMM并不...转载 2019-09-06 14:34:20 · 197 阅读 · 0 评论 -
php 各种框架优缺点 及 laravel框架与thinkPHP框架的区别
一直以来,phper讨论最多的就是php各种框架的优缺点,网上的资料也是比较零散,现把几款主流的框架收集汇总一下,其中本人只是用过Yii2、Laravel、Yaf、Thinkphp这四种框架,因此大部分对各种框架的评价皆来自与网上资料,如果问题,请在评论中指出,共同进步一、ThinkPHPThinkPHP(FCS)是一个轻量级的中型框架,是从Java的Struts结构移植过来的中文PHP...原创 2019-08-27 17:42:54 · 11375 阅读 · 0 评论 -
laravel服务容器-----深入理解控制反转(IoC)和依赖注入(DI),facade(门面)和contracts(契约)联系
一.什么是依赖注入和控制反转?控制反转:即IOC (Inversion of Control),它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转移,从程序代码本身转移到了外部容器。依赖注入:基本原则是:应用组件不应该负责查找资源或者其他依赖的协作对象。配置对象的工作应该由IoC容器负责,“查找资源”的逻辑...原创 2019-08-26 18:01:59 · 834 阅读 · 0 评论 -
PHP内核-Zend引擎的详解
在前面的章节介绍了PHP的生命周期,PHP的SAPI,SAPI处于PHP整个架构较上层,而真正脚本的执行主要由Zend引擎来完成, 这一小节我们介绍PHP脚本的执行。目前编程语言可以分为两大类: 第一类是像C/C++, .NET, Java之类的编译型语言, 它们的共性是: 运行之前必须对源代码进行编译,然后运行编译后的目标文件。 第二类比如:PHP, Javascript, ...转载 2018-09-05 18:05:46 · 434 阅读 · 0 评论 -
PHP的闭包
PHP的闭包2012-10-29 14:27 by 轩脉刃, 25899 阅读, 7 评论, 收藏, 编辑php的闭包(Closure)也就是匿名函数。是PHP5.3引入的。闭包的语法很简单,需要注意的关键字就只有use,use意思是连接闭包和外界变量。 1 2 3 $a = function() use($b) { ...转载 2018-09-11 11:21:08 · 136 阅读 · 0 评论 -
深入剖析 Web 服务器与 PHP 应用之间的通信机制 - 掌握 CGI 和 FastCGI 协议的运行原理
本文首发于 深入剖析 Web 服务器与 PHP 应用之间的通信机制 - 掌握 CGI 和 FastCGI 协议的运行原理,转载请注明出处!身为一名使用 PHP 语言开发后端服务的程序猿,我们每天都和 PHP 以及 Web 服务器产生无数次的亲密接触。得益于它们,我们才能够如此快速的构建出令人陶醉的 Web 产品。尽管我们已经和 Web 服务器和 PHP 建立起深厚的友谊,但你知道它们之...转载 2018-08-15 10:39:17 · 245 阅读 · 0 评论 -
日志-php-fpm慢日志查询
项目用php开发,在生产运行的过程中,应该一段时间监测下php脚本运行状态,哪些php进程速度太慢,有哪些错误日志。问:如何来查看检测比较慢的php脚本呢?答:查看php-fpm慢日志。1.先查找到配置文件存放地址find / -name php-fpm.confvi /usr/servers/php/etc/php-fpm.conf打开看看你的慢日志是否开启,或者开启的慢日志存放在哪里。对应的地...转载 2018-04-21 16:01:28 · 1934 阅读 · 0 评论 -
php-fpm监听socket类型-解决Connection refused
前言:php-fpm的工作模式和nginx类似,都是一个master,多个worker模型。每个worker都在accept本pool内的监听套接字(linux已不存在惊群现象)。一.背景:在开发中碰到一个问题,项目以nginx+php-fpm形式访问交互,结果访问项目时报错如下图:二.分析:提示很明确嘛,去看error.log(在nginx.conf或者vhost里头配置的,找到你对应路径即可)...转载 2018-04-19 22:35:06 · 557 阅读 · 0 评论 -
PHP的抽象类、接口的区别和选择
区别:1、对接口的使用是通过关键字implements。对抽象类的使用是通过关键字extends。当然接口也可以通过关键字extends继承。2、接口中不可以声明成员变量(包括类静态变量),但是可以声明类常量。抽象类中可以声明各种类型成员变量,实现数据的封装。(另JAVA接口中的成员变量都要声明为public static final类型)<?php abstract class Fath...转载 2018-04-19 18:05:38 · 105 阅读 · 0 评论 -
PHP中的 抽象类(abstract class)和 接口(interface)
一、抽象类abstract class1.抽象类是指在class前加了abstract关键字且存在抽象方法(在类方法function关键字前加了abstract关键字)的类。2.抽象类不能被直接实例化。抽象类中只定义(或部分实现)子类需要的方法。子类可以通过继承抽象类并通过实现抽象类中的所有抽象方法,使抽象类具体化。3.如果子类需要实例化,前提是它实现了抽象类中的所有抽象方法。如果子类没有全部实现...转载 2018-04-19 17:41:15 · 156 阅读 · 0 评论 -
PHP中PSR-[0-4]规范
更好排版:https://www.zybuluo.com/phper/note/65033PHP是世界上最伟大的语言,这一点是毋庸置疑的吧。哈哈哈哈哈哈 。这个霸气的开头不错!(^__^)但是正是因为伟大,所以用的人也就多了,人一多,再牛逼再伟大的东西,都会产生问题,逐渐就造成了很多的分歧。每个人的习惯不一样,所以在一些PHP语法上的一些表现也是千差万别,比如这些问题:function 函数名是否...转载 2018-04-23 10:58:21 · 158 阅读 · 0 评论 -
php垃圾回收和内存管理机制
一、PHP 垃圾回收机制(Garbage Collector 简称GC)在PHP中,没有任何变量指向这个对象时,这个对象就成为垃圾。PHP会将其在内存中销毁;这是PHP的GC垃圾处理机制,防止内存溢出。当一个PHP线程结束时,当前占用的所有内存空间都会被销毁,当前程序中所有对象同时被销毁。GC进...转载 2018-04-16 18:44:11 · 443 阅读 · 0 评论 -
详谈PHP垃圾回收机制
引用计数基本知识每个php变量存在一个叫"zval"的变量容器中。一个zval变量容器,除了包含变量的类型和值,还包括两个字节的额外信息。第一个是"is_ref",是个bool值,用来标识这个变量是否是属于引用集合(reference set)。通过这个字节,php引擎才能把普通变量和引用变量区分开来,由于php允许用户通过使用&来使用自定义引用,zval变量容器中还有一个内部引用计数机制...转载 2018-04-16 18:42:04 · 110 阅读 · 0 评论 -
PHP内核--探究内存管理与缓存机制
前言:PHP在运行时所需的内存,是一次性向操作系统申请开辟的,而不是分多次。那他是怎么样一次性申请呢,机制又是如何?请看下边介绍。heap层是PHP内存管理的核心实现,PHP底层对内存的管理, ZendMM向系统进行的内存申请,并不是有需要时向系统即时申请, 而是由ZendMM的最底层(heap层)先向系统申请一大块的内存, 建立一个类似于内存池的管理机制,unset后,ZendMM并不会直接立刻...转载 2018-04-16 18:41:26 · 185 阅读 · 0 评论 -
如何理解php中命名空间概念
PHP中命名空间的本质是容器,可以起到封装的作用。在这个容器中中我们可以放入变量,函数,类。php命名空间概念的理解可以类比于文件目录,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。上面root文件夹下包含两个子文件夹sub1和sub2,sub1和sub2就...转载 2018-04-16 18:38:44 · 217 阅读 · 0 评论 -
日志-php-error错误日志查看
前言:对于我们做php开发的人员,上了生产环境,一定要把相关debug,display_errors错误提示等关掉。谁还难免不犯个错呢?这样能防止非致命性报错下,导致项目路径、数据库等信息泄漏。问:那么问题来了,我们在生产该如何查看php等相关错误呢?答:记录到错误日志里。error.log(或直接发送到syslog)下边就如何配置和查看日志作出简单叙述。一.相关配置需要将php.ini中的配置指...转载 2018-04-21 16:01:40 · 1985 阅读 · 0 评论 -
empty、isset、isnull的区别
在PHP中,存在很多判断值或变量是否为空的函数 如empty、isset、isnullempty如果 变量 是非空或非零的值,则 empty() 返回 FALSE。例如“”、0、”0″、NULL、FALSE、array()、var $var、未定义或者空属性的对象都将被认为是空的,返回TRUE。...转载 2018-04-21 16:06:39 · 259 阅读 · 0 评论 -
PHP 高级编程之多线程
1. 多线程环境安装1.1. PHP 5.5.91.2. 安装 pthreads 扩展2. Thread3. Worker 与 Stackable4. 互斥锁4.1. 多线程与共享内存5. 线程同步6. 线程池6.1. 线程池6.2. 动态队列线程池6.3. pthreads Pool类7. 多线程文件安全读写(文件锁)8. 多线程与数据连接8.1. Worker ...转载 2018-05-11 11:52:39 · 371 阅读 · 0 评论 -
PHPExcel-实际操作
<?phparray(1) { ["stream"]=> array(35) { [0]=> array(8) { ["price"]=> string(4) "7.00" ["time"]=> string(19) "2018-06-14 18:18:54" ["原创 2018-07-12 19:00:18 · 147 阅读 · 0 评论 -
PHPExcel-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把classes解压到你项目的一个目录中,重名名为phpexcel,开始喽,(代码都摘自自带实例) 程序部分 require_once './phpexcel/PHPExcel.php'; // 首先...转载 2018-07-12 18:41:44 · 832 阅读 · 0 评论 -
PhpExcel中文帮助手册|PhpExcel使用方法
下面是总结的几个使用方法include 'PHPExcel.php';include 'PHPExcel/Writer/Excel2007.php';//或者include 'PHPExcel/Writer/Excel5.php'; 用于输出.xls的创建一个excel$objPHPExcel = new PHPExcel();保存excel—2007格式$objWriter = new PHPE...转载 2018-07-12 09:54:33 · 189 阅读 · 0 评论 -
PHP微信支付回调接口下单,如何验证微信支付签名 ,处理异步回调(验证的坑)
在写这之前 看了好多文档,有好多坑在里面,通过多半天的努力终于把验证的问题搞出来了我也不理解微信官网文档写的那么不清晰,一个简单的介绍就能介绍明白,弄一大堆还没写明白,下面直接把我实操的验证贴上,供大家参考,有什么不对的及时更正,欢迎监督指导!1.下单其中数组转换xml格式,curl发送请求,xml格式转换成数组可单独封装成函数。/*** * @Notes:请求微信下订单 * @Interf...原创 2018-06-27 16:35:16 · 11569 阅读 · 0 评论 -
Laravel-EloquentORM (基础版)
欢迎大家关注我的其他Github博客和简书,互相交流! 今天学习了Laravel中的ORM基础部分,现在分享一下。Eloquent ['eləkwənt] 时,数据库查询构造器的方法对模型类也是也用的,使用上只是省略了DB::table(‘表名’)部分。在模型中使用protected成员变量$table指定绑定的表名。<?phpnamespace App;use Illuminate...转载 2018-06-12 13:58:59 · 250 阅读 · 0 评论 -
Laravel5.3中的原生+查询构造器+Eloquent ORM 常用整理(精简版)
一 db门面方法use Illuminate\Support\Facades\DB;查:$users = DB::select('select * from users where active = ?', [1]);更新:DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);插入:DB::insert('in...转载 2018-06-12 13:53:58 · 920 阅读 · 0 评论