
php
phparchitect
这个作者很懒,什么都没留下…
展开
-
PHP易踩坑面试题总结
1、下列代码输出结果:$ba = true;$bb = false;$b1 = $ba and $bb;$b2 = $ba && $bb;var_dump($ba);var_dump($bb);var_dump($b1);var_dump($b2);输出结果:true false true false2、echo '1'.print(2) +3的输出结果为:echo '1'.print(2) +3;输出结果为:5113、以下内容输出结果:$a原创 2022-01-13 01:58:43 · 333 阅读 · 0 评论 -
PHP获取header头部信息
获取header信息/** * *接收头信息 **/ function em_getallheaders() { foreach ($_SERVER as $name => $value) { if (substr($name, 0, 5) == 'HTTP_') { $headers[str_replace(' ', '-', ucwords(strtolo转载 2020-08-16 16:19:20 · 731 阅读 · 0 评论 -
Thinkphp3.2(tp3.2) sql语句表达式查询字符列表【eq,neq,gt,egt,lt,elt,in,between,like,exp】
上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式支持更多的SQL查询语法,也是ThinkPHP查询语言的精髓,查询表达式的使用格式:$map['字段名'] = array('表达式','查询条件');表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:表达式 含义 协助记忆 EQ 等于(=) equal NEQ 不等于(<>) not equal GT 大于(>) greater EGT转载 2020-07-08 17:55:49 · 2731 阅读 · 0 评论 -
phpexcel 因php7而无法导出
打开PHPExcel\Calculation\Functions.php文件,删除掉576行(有些版本下载下来可能不是这一行,就在580行左右,elseif(is_array($value)) { return 64; break;//去除该break即可 })的break即可。原文链接:https://blog.youkuaiyun.com/q469213243/article/details/80307621...转载 2020-07-03 02:16:06 · 442 阅读 · 1 评论 -
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
PHP中的循环结构大致有for循环,while循环,do{} while 循环以及foreach循环几种,不管哪种循环中,在PHP中跳出循环大致有这么几种方式:代码:<?php$i = 1;while (true) { // 这里看上去这个循环会一直执行 if ($i==2) {// 2跳过不显示 $i++; continue; }...转载 2019-12-10 11:42:41 · 264 阅读 · 0 评论 -
PHP合并数组几种方式总结及数组去重
今天在做项目的时候,想将多个数组进行去重合并的操作。在此前合并数组我一直用的是array_merge()这个函数,今天我百度了一下,原来还有‘+'号,和array_merge_recursive函数。下面是一段对比的代码$array1 = array(2,4,"color" => "red"); $array2 = array("a", "b", "color" =...转载 2019-06-11 15:07:03 · 3958 阅读 · 0 评论 -
php加图片水印
php加图片水印最近项目中有功能需求要加图片水印,下边分享给你大家。直接上代码:<?php//要加水印的图片$dst_path = './timg.jpeg';//水印图片$src_path = './logo.png';createWater($dst_path,$src_path);/** * dst_path 图片路径 * src_path 水印位置...转载 2019-06-12 16:52:06 · 1626 阅读 · 0 评论 -
PHP中常用的魔术方法
我们在PHP中经常用到魔术方法,像构造方法,析构方法等等魔术变量,下面总结一下一些常用的魔术变量:__construct(),__destruct(),__clone(),__autoload(),__tostring(),__invoke(),__set(),__get(),__unset(),__isset(),__call(),__callstatic;1,__constuct()...转载 2019-06-13 17:11:00 · 255 阅读 · 0 评论 -
php final static const成员属性用法
首先来说说final1.final不能用来修饰成员属性2.final只能修饰类和方法作用:被修饰的类不能被子类所继承;被修饰的方法不能被子类的方法覆盖。< ?PHP final class BaseClass { public function test() { echo "BaseClass::test() calledn"; ...转载 2019-06-13 17:19:22 · 236 阅读 · 0 评论 -
PHP实现文字写入图片功能
本文实例为大家分享了PHP实现文字写入图片的具体代码,供大家参考,具体内容如下:/** * PHP实现文字写入图片 */class wordsOnImg { public $config = null; /** * @param $config 传入参数 * @param $config['file'] 图片文件 * @param $config[...转载 2019-05-21 17:28:51 · 1356 阅读 · 0 评论 -
linux环境下安装PHP的OpenSSL扩展
先安装依赖包:yum install openssl openssl-devel进入PHP安装包里的OpenSSL文件夹,根据个人的安装包位置不同,此处是cd /home/local/php.5.6.25/ext/openssl//usr/local/bin/phpize可能会报错:Cannot find config.m4.Make sure that you r...转载 2019-05-08 09:17:06 · 1930 阅读 · 0 评论 -
PHP中使用CURL实现GET和POST请求
CURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 CURL 库。使用PHP的CURL 库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据了。无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内容,CURL ...转载 2019-04-03 16:47:07 · 276 阅读 · 0 评论 -
PHP八大设计模式
设计模式单例模式解决的是如何在整个项目中创建唯一对象实例的问题,工厂模式解决的是如何不通过new建立实例对象的方法。1.单例模式$_instance必须声明为静态的私有变量 构造函数和析构函数必须声明为私有,防止外部程序new 类从而失去单例模式的意义 getInstance()方法必须设置为公有的,必须调用此方法 以返回实例的一个引用 ::操作符只能访问静态变量和静...转载 2019-04-03 16:35:57 · 318 阅读 · 0 评论 -
阿里云centos7.6安装php7.3的详细教程
原文请参考:http://www.php.cn/php-weizijiaocheng-414091.html本篇文章给大家带来的内容是关于阿里云centos7.6安装php7.3的详细教程,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。新增用户 用户组 1 2 groupadd www useradd -g www ww...转载 2019-03-14 16:38:51 · 4047 阅读 · 0 评论 -
linux更换php版本(编译安装)
参考博客:http://blog.youkuaiyun.com/21aspnet/article/details/47708763事前准备:把你以前用的好好的php版本删掉,一般是在/usr/local/php,把这个文件夹删掉,然后把/bin/php这个指令删掉1. 下载一个你需要的php版本,而且能够用 configure安装的。我们这里举例php7.0.27版本的压缩包2. 解压缩这个php...转载 2019-03-14 15:53:26 · 561 阅读 · 0 评论 -
PHP中private和public还有protected的区别
public 表示全局,类内部外部子类都可以访问;private表示私有的,只有本类内部可以使用;protected表示受保护的,只有本类或子类或父类中可以访问;<?php //父类 class father { public function a() { echo "function a"; } ...转载 2019-06-13 17:24:05 · 245 阅读 · 0 评论 -
php 暂停执行多少秒OR毫秒
在php中暂停代码执行一定时间,有两个函数可以实现,一个是sleep,另一个是usleep,它们参数都是一个整数值。sleep是暂停多少秒,usleep是暂停多少微秒。注意:usleep单位是微秒,1秒 = 1000毫秒 ,1毫秒 = 1000微秒,即1微秒等于百万分之一秒。如果程序中要使用要暂停多少毫秒,只能使用usleep,务必注意参数的单位,假设暂停 50毫秒,应该使用usleep(50...转载 2019-06-10 17:18:43 · 1581 阅读 · 0 评论 -
php高清晰度无损压缩
经常会用到把上传的大图片压缩,特别是体积,在微信等APP应用上,也默认都是有压缩的,那么,怎么样对图片大幅度压缩却仍能保持较高的清晰度呢? 压缩通常是有按比例缩放,和指定宽度压缩的,效果很不错,一个数码相机拍的4M图片,压缩后保持了较高的清晰度和原图宽高值,只有700K。下面是代码(有两个文件,imgcompress.class.php类,及compress.php)compress...转载 2019-10-09 09:48:01 · 600 阅读 · 0 评论 -
php对二维数组排序
function my_sort($arrays,$sort_key,$sort_order=SORT_DESC,$sort_type=SORT_NUMERIC ){ if(is_array($arrays)){ foreach ($arrays as $array){ if(is_array($array)){ ...转载 2019-07-22 09:04:48 · 272 阅读 · 0 评论 -
php的敏感词的过滤类(不依赖扩展)
废话不多**,直接上货:<?phpclass Logic_BlackWord{ const APP_FORUM = 1; const APP_BLOG = 2; const APP_VOTE = 3; /** * 过滤得到禁词 * @param unknown $txt * @return Ambigous <multitype:, un...转载 2019-07-25 12:19:08 · 586 阅读 · 0 评论 -
敏感词过滤-php扩展trie-filter安装使用
关键词过滤扩展,用于检查一段文本中是否出现敏感词,基于Double-Array Trie 树实现一、安装libiconv这个是libdatrie的依赖项wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz tar zxvf libiconv-1.14.tar.gz cd libiconv-1.14 ...转载 2019-07-25 11:19:08 · 747 阅读 · 0 评论 -
PHP 中 foreach和for循环哪个效率更高
今天看别人的代码,有段代码是对一个二维数组中的数据进行处理,那个作者用的是for循环,但是我感觉用 foreach 也可以。所以就想问问看在PHP中 for 循环和 foreach 哪个更快。for循环遍历(count在内部): $big_Array = range(0,1000000,1); $start_For_Time = microtime_float(); ...转载 2019-07-02 13:51:16 · 1780 阅读 · 0 评论 -
PHP获取本月起始和终止时间戳
一、本月起始和结束//获取本月开始的时间戳$beginThismonth=mktime(0,0,0,date('m'),1,date('Y'));//获取本月结束的时间戳$endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'));二、上月起始和结束 写法一:$m = date('Y-m-d', mkt...转载 2019-06-18 12:11:12 · 617 阅读 · 0 评论 -
PHP设计模式之装饰者模式代码实例
1、装饰模式(Decorator Pattern) : 动态地给一个对象增加一些额外的职责(Responsibility),就增加对象功能来说,装饰模式比生成子类实现更为灵活。其别名也可以称为包装器(Wrapper),与适配器模式的别名相同,但它们适用于不同的场合。根据翻译的不同,装饰模式也有人称之为“油漆工模式”,它是一种对象结构型模式。2、模式动机: 一般有两种方式可以实现给一...转载 2019-06-17 17:36:54 · 173 阅读 · 0 评论 -
PHP函数include include_once require和require_once的区别
了解下include、include_once、require和require_once这4个函数:include函数:会将指定的文件读入并且执行里面的程序; require函数:会将目标文件的内容读入,并且把自己本身代换成这些读入的内容; include_once 函数:在脚本执行期间包含并运行指定文件。此行为和 include 语句类似,唯一区别是如果该文件中已经被包含过,则不会再次包...转载 2019-06-11 15:00:18 · 314 阅读 · 0 评论 -
js 获取li数据 并拼接成二维数组及后台PHP处理
1.js 获取li数据 并拼接成二维数组// .ttr 是li的class获取li的集合 并获取里面两个属性var arr = new Array();$('.ttr').each(function(k,v){arr[k] = new Object();arr[k]['commodity_id'] = $(this).fin...原创 2019-06-20 18:50:18 · 617 阅读 · 0 评论 -
PHP socket服务端与客户端的简易通信
今天学习socket通信的同时,顺便整理了下以前初识socket的知识。现在关于php的socket通信,有些框架已经十分成熟了,比如 swoole和workerman,这两个大家可以学习学习。行了不说废话了,现在切回正题,说下今天的东西吧。Socket连接过程分为三个步骤:服务器监听,客户端请求,连接确认。(1)服务器监听:是服务器端套接字并不定位具体的客户端套接字,而...转载 2019-03-08 14:52:36 · 227 阅读 · 0 评论 -
PHP数据类型转换
PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有:(int)、(integer):转换成整形 (float)、(double)、(real):转换成浮点型 (string):转换成字符串 (bool)、(boolean):转换成布尔类型 (array):转换成数组 (object):转换成对象PHP数据类型有三种转换方式:在要转换的变量之前加上用括号括起来的目标类型...转载 2019-01-30 12:28:47 · 160 阅读 · 0 评论 -
深入分析小程序与H5的区别
小程序与H5还是有很大区别的,那我们就从开发和用户体验两个角度去看看两者之间的差异都有哪些。 01 运行环境传统H5 运行环境是浏览器,包括webview等;微信小程序运行环境是非完整的浏览器,是基于浏览器内核完全重构的一个内置解析器,针对小程序专门做了优化,配合自己定义的开发语言标准,大幅提升了小程序的流畅度和性能。所以,本质上说,HML是浏览器页面,而小程序是计算机程序...转载 2018-08-03 19:59:55 · 5211 阅读 · 1 评论 -
RBAC权限管理
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。(如下图)设计请参考:https://www.cnblogs.com/hanzongze/archive/20...转载 2018-07-27 09:08:30 · 151 阅读 · 0 评论 -
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法,主要使用到了 php 的时间函数 mktime。下面首先还是直奔主题以示例说明如何使用 mktime 获取今日、昨日、上周、本月的起始时间戳和结束时间戳,然后在介绍一下 mktime 函数作用和用法。01 //php获取今日开始时间戳和结束时间戳 02 $beginToday=mktime(0,0,0,date(...转载 2018-07-19 17:24:17 · 206 阅读 · 0 评论 -
微信用户访问小程序的登录过程
概述当你开发完了一个小程序并部署上线后,某个微信用户第一次访问这个小程序的时候,会弹出一个授权界面,用户可以选择是否使用微信登录,如果选择是,则直接进入到小程序。当你第二次进入该小程序的时候,你会发现授权界面不会弹出来了,直接就进入小程序了。这个过程看起来非常的简单,但其实实现起来相当的麻烦和繁琐。涉及到会话、安全、验证等各种各样的问题。下面笔者介绍一下实现这个登录过程的思路。微信...转载 2018-07-25 10:13:03 · 780 阅读 · 0 评论 -
B2B、B2C、C2C、O2O分别是什么意思?
O2O、P2P、B2C、C2C、B2B这些术语都是什么意思?关注互联网的朋友们一定经常能够遇到这些英文缩写的词汇,可是这些缩写究竟是什么意思呢?我将结合自己的理解,为大家全面解释一下,这些令人费解的词汇。 B=Business,即企业;C=Customers,即消费者,这样就好理解这些简称了;M=Medium,即媒介B2B:(Business To Business)商家对商家进行...转载 2018-07-19 14:32:48 · 3755 阅读 · 0 评论 -
yii框架post提交遇到400 (Unable to verify your data submission. )
第一种解决办法是关闭Csrfpublic function init(){ $this->enableCsrfValidation = false;}第二种解决办法是在form表单中加入隐藏域<input name="_csrf" type="hidden" id="_csrf" value="<?= Yii::$app->request->.转载 2018-07-19 14:21:58 · 222 阅读 · 0 评论 -
面试常考的常用数据结构与算法
数据结构与算法,这个部分的内容其实是十分的庞大,要想都覆盖到不太容易。在校学习阶段我们可能需要对每种结构,每种算法都学习,但是找工作笔试或者面试的时候,要在很短的时间内考察一个人这方面的能力,把每种结构和算法都问一遍不太现实。所以,实际的情况是,企业一般考察一些看起来很基本的概念和算法,或者是一些变形,然后让你去实现。也许看起来简单,但是如果真让你在纸上或者是计算机上快速地完成一个算法,并且设计...转载 2018-07-24 11:28:48 · 401 阅读 · 0 评论 -
PHP垃圾回收
之前,被面试官问到性能,内存占用问题,我当时就蒙B了。没有接触呀,没有那么高的学问啊,开始担心自己会被刷下来。这样的事我看大家都遇到过吧。本次我们一起学学PHP垃圾回收,内存占用,同时解破面试官是如何装逼的zval容器列1.文件index.php,把下面这段代码copy到文件里<?php $a = "hello world"; xdebug_debug_zval('...转载 2018-07-18 10:49:57 · 292 阅读 · 0 评论 -
PHP传值和传引用、传地址的区别
PHP传值和传引用、传地址的区别PHP传值和传引用、传地址的区别是什么?传值:是把实参的值赋值给形参,那么对形参的修改,不会影响实参的值传地址:是传值的一种特殊方式,只是他传递的是地址,不是普通的如int那么传地址以后,实参和形参都指向同一个对象传引用:真正的以地址的方式传递参数传递以后,形参和实参都是同一个对象,只是他们名字不同而已对形参的修改将影响实参的值 ...转载 2018-07-23 14:24:43 · 586 阅读 · 0 评论 -
求一个整数数组中和最大的连续子数组,例如:[1, 2, -4, 4, 10, -3, 4, -5, 1]的最大连续子数组是[4, 10, -3, 4](需写明思路,并编程实现)
求一个整数数组中和最大的连续子数组,例如:[1, 2, -4, 4, 10, -3, 4, -5, 1]的最大连续子数组是[4, 10, -3, 4](需写明思路,并编程实现)$arr = [ 1 , 2 , -4 , 4 , 10 , -23 , 4 , -5 , 1]; $max_sum = 0;$sum=0;$new = [];$i = 1;echo '<pre/>';forea...转载 2018-07-11 15:52:59 · 329 阅读 · 0 评论 -
项目上线,php的错误信息必须不让其在页面中显示给客户
对于PHP开发者来 说,一旦某个产品投入使用,应该立即将 display_errors选项关闭,以免因为这些错误所透露的路径、数据库连接、数据表等信息而遭到黑客攻击。但是,任何一个产品在投入使用后,都难 免会有错误出现,那么如何记录一些对开发者有用的错误报告呢?我们可以在单独的文本文件中将错误报告作为日志记录。错误日志的记录,可以帮助开发人员或者 管理人员查看系统是否存在问题。 如果需要将程序中的...转载 2018-07-11 15:14:42 · 465 阅读 · 0 评论 -
php获取文件名和后缀名
php获取文件名1 function retrieve($url) 2 { 3 preg_match('/\/([^\/]+\.[a-z]+)[^\/]*$/',$url,$match); 4 return $match[1]; 5 } php获取文件扩展名 1 <?php 2 function getExt($url) 3 { 4 $path=parse_...转载 2018-08-09 11:02:24 · 808 阅读 · 0 评论