php开发
文章平均质量分 91
原野-
php开发,小程序开发,UI设计,前端开发,
展开
-
PHP及thinkphp中的错误和异常处理
对于任何一种语言来说,异常的存在是具备共性的,所以学习一门语言理解异常机制是必不可少的.什么是错误当PHP语言遇到异常的情况(比如数据库连接不上或者函数参数传递错误),则会报出一些错误,错误可以分为多种类型,除了E_ERROR和E_CORE_ERROR错误,其它错误不会终止程序运行.PHP让人觉得简单的原因就在于程序不会频繁的报错,给人一种编写流畅和方便的错觉.也正因为这个原因PHP程序的严谨性和准确性差了不少,比如mysql_fetch_array查询遇到网络错误返回FALSE的时候(程序没转载 2021-08-03 09:17:25 · 2462 阅读 · 0 评论 -
Linux 定时任务crontab认识总结
crontab命令概念crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。语法:crontab(选项)(参数)选项:e:编辑该用户的计时器设置;-l:列出该用户的计时器设置;-r:删除该用户的计时器设置;-u<用户名称>:指定要设定计时器的用户名称。参数:crontab文件:指定包含待执行任务的crontab文件。扩展:Linux下的任务调度分为两类:系统任务调度和用户任务调度。转载 2021-06-25 10:06:30 · 92 阅读 · 0 评论 -
thinkphp中的验证验证功能
在thinkphp框架当中推荐使用验证器进行数据验证(也支持使用\think\Validate类进行独立验证)在和controller层 创建validate模块即可创建验证模块:验证器定义为具体的验证场景或者数据表定义好验证器类,直接调用验证类的check方法即可完成验证,下面是一个例子:我们定义一个\app\index\validate\User验证器类用于User的验证。namespace app\index\validate;use think\Validate;cl.原创 2020-11-04 09:30:03 · 972 阅读 · 0 评论 -
php中的全局变量区别与javascript中的全局变量
在最近的项目当中使用的是phalapi框架,但是使用到了redis 发布者订阅者的模式,需要长时间开启监听的服务,故而服务那块实现的是原生的php,单项目框架当中都提倡将一些常用的配置提取到对应的地方,方便多个开发环境进行切换,因此使用到//redis配置defined('CONFIG_ROOT') || define('CONFIG_ROOT', dirname(__FILE__) . '/..');$resConfig=require_once CONFIG_ROOT . '/../config原创 2020-10-28 10:24:43 · 160 阅读 · 0 评论 -
PM2 常用命令总结
在最近的项目当中需要监听redis的一个过期事件,需要开启一个服务,于是用到pm2,现将经常使用的命令总结如下:m2常用命令记录$ pm2 start app.js # 启动app.js应用程序$ pm2 start app.js -i 4 # cluster mode 模式启动4个app.js的应用实例# 4个应用程序会自动进行负载均衡$ pm2 start app.js --name="api" # 启动应用程序并命名为 "api"$ pm2 start app.j...转载 2020-10-27 15:08:01 · 265 阅读 · 0 评论 -
php中的无限极菜单的梳理(常用总结方法)
1,实现无极限的菜单常用的方法是在数据库存储的时候增加一个PID字段用来区别自己所属的分类距离说明如下:$array = array(array('id' => 1, 'pid' => 0, 'name' => '河北省'),array('id' => 2, 'pid' => 0, 'name' => '北京市'),array('id' => 3, 'pid' => 1, 'name' => '邯郸市'),array('id' =转载 2020-10-27 09:34:34 · 453 阅读 · 0 评论 -
thinkphp中的请求路径,图片路径问题
1,在thinkphp中的view层里面引入的js文件中只用url 方法动态获取当前的control的路径的时候无效,需要在html的结构当中定义,在js、文件中再使用。2,在view层经常需要引用对应的图片地址1绝对路径<imgsrc="/myweb/Tpl/default/Public/iamges/logo.png"/>2设定head中的base<head><basehref="http://localhost/myweb/Tpl/default...原创 2020-10-27 09:23:31 · 1261 阅读 · 0 评论 -
thinkphp中文按照拼音进行排序
1,数据库中的查询方法原生代码按照汉字排序是这样的:select * from `project` order by convert(`name` using gb2312) asc;M(‘Project’)->order(‘convert(name using gb2312) asc’)->select();2,php实现<?php$str = "我们可以在浏览器中看到,当鼠标移到元素上时,元素开始向右移动,开始比较慢,之后则比较快,移开时按原曲线回到原点。...原创 2020-10-27 09:16:11 · 538 阅读 · 0 评论 -
总结工作当中的正则表达式php
1,在字符串中替换找到的第一个比如说这个字符串有很多个asd,有连续几个的,也有只是一个的,但是我想只保留第一个asd,后面的asd全部删掉,该怎么做?(在不影响其他字符的基础上)可以采取以下解决方法:$s = 'ssssssssgsdfasdasdasdasdjlkjhkjhalkasdasdjsdkajshdasdaklsjdasdhkjashgdaklsh';$t = 'ssssssssgsdfasdjlkjhkjhalkjsdkajshdaklsjdhkjashgdaklsh';原创 2020-10-27 09:03:58 · 98 阅读 · 0 评论 -
PHP字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、切割成数组等)
一、字符串替换str_replace("iwind", "kiki", "i love iwind, iwind said");将输出 "i love kiki, kiki said"str_replace(find,replace,string,count)参数 描述find 必需。规定要查找的值。replace 必需。规定替换 find 中的值的值。string 必需。规定被搜索的字符串。count 可选。一个变量,对替换数进行计数。二、字符串删除方法一$st...转载 2020-10-27 08:59:36 · 147 阅读 · 0 评论 -
php工作当中常用小技巧总结
1,拆分字符串,并且获取最后一个常见的做法有以下三种PHP explode 切割字串 快速取得最後一個值以往常見的寫法,都會是先計算陣列大小,然後直接抓最後一個值,如下範例: <?php $tmp = explode(',', '1,2,3'); $last = $tmp[count($tmp) - 1]; echo $last; ?> 不過既然是陣列,還有下述兩種作法可以參考看看:取得最後一個值View Raw Code?原创 2020-10-27 08:22:34 · 129 阅读 · 0 评论 -
关于php项目部署到腾讯云服务器的部署流程
最近工作项目中经常需要使用将项目部署到腾讯云服务器上,先将大致的流程总结如下:1,安装第三方源,因为默认的环境中没有nginx等yum install epel-release2,安装nginx和php等等yum install nginx php-fpm3,配置用户chown -R apache:apache /usr/share/nginx/html如果apache用户没有启用,需要先启用usermod -s /bin/bash apache4,配置nginx..原创 2020-10-12 09:57:56 · 1957 阅读 · 1 评论 -
php中的类型转换总结如下:
工作中对数据类型的转换使用特别的频繁,先将经常使用的方法总结如下:转换方法类型:1、强制转换:(int) (bool) (float) (string) (array) (object)2、3个具体类型的转换函数,intval()、floatval()、strval()3、通用类型转换函数settype(mixed var,string type)强制转换1、php强制装换成整形的两个词?解答:(int)、(integer):转换成整形2、php强制装换成浮点形的三...转载 2020-09-28 10:41:29 · 129 阅读 · 0 评论 -
php本地项目部署到服务器上之后排除错误处理方法
待项目上线后我们经常把相关debug,display_errors错误提示等关掉。谁还难免不犯个错呢?这样能防止非致命性报错下,导致项目路径、数据库等信息泄漏,如果碰到问题该从什么地方开始排除呢,我自己整理的思路如下:cd /etc/nginx/vi nginx.conf 可以查看nginx的错误日志tailf /var/log/nginx/access.log查完此处日志后 可以再查看tailf /var/opt/remi/php73/log/php-fpm/www-error.log..原创 2020-09-28 10:31:49 · 212 阅读 · 0 评论 -
前端跨域使用jsonp处理方法示例
CORS,又称跨域资源共享,英文全称Cross-Origin Resource Sharing假设我们想使用Ajax从a.com的页面上向b.com的页面上要点数据,通常情况由于同源策略,这种请求是不允许的,浏览器也会返回“源不匹配”的错误,所以就有了“跨域”这个说法。但是我们也有解决办法,我们可以再b.com的页面header信息中增加一行代码:处理方法一: 1 header("Access-Control-Allow-Origin: *"); 如果需要原创 2020-08-25 09:33:39 · 899 阅读 · 0 评论 -
详解PhpSpreadsheet设置单元格 导入导出
PhpSpreadsheet提供了丰富的API接口,可以设置诸多单元格以及文档属性,包括样式、图片、日期、函数等等诸多应用,总之你想要什么样的Excel表格,PhpSpreadsheet都能做到。在thinkphp中引入该三方库的方法:composer require phpoffice/phpspreadsheet各个功能类说明如下:usePhpOffice\PhpSpre...转载 2019-12-13 08:48:21 · 2630 阅读 · 0 评论 -
彻底理解PHP的SESSION机制
一、默认机制,用磁盘文件来实现PHP会话。php.ini配置:session.save_handler = files 1、session_start() A、 session_start()是session机制的开始,它有一定概率开启垃圾回收,因为session是存放在文件中, PHP自身的垃圾回收是无效的,SESSION的回收是要删文件的,这个概率是根据php.ini的...转载 2019-02-26 16:22:40 · 105 阅读 · 0 评论 -
单点登录原理与简单实现
一、单系统登录机制1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系 但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必...转载 2019-03-12 14:15:23 · 74 阅读 · 0 评论 -
总结关于thinkphp中where查询条件的设置
多个条件数组查询写法:$User = new UserModel();$map['id'] = array('neq',1);$map['name'] = 'yuanye';$User->where($map)->select();查询“或”条件(_logic)$where['name'] = array('like', '%yuauye%');$where...原创 2019-04-24 10:00:36 · 1350 阅读 · 0 评论 -
PHP无法获得curl post 提交的json数据
最近碰到使用curl访问php接口,但是拿不到传递的参数,常见的情况有以下几种,常见一:代码如下使用$_POST一直拿不到参数,发现$headers[]= 'Content-Type: application/json;charset=UTF-8;'注释掉这一行才可以正常使用$_POST获取参数,还有另外一种解决办法就是不需要注释头部设置,只需要使用$post = file_get_c...原创 2019-08-12 17:30:56 · 1532 阅读 · 0 评论 -
zendstudio中安装tfs插件,tfs插件导入tfs中的项目到本地,配置及使用
1,点击菜单栏上的 “Help”——》选择“Install New Software”。地址: http://dl.microsoft.com/eclipse/tfs,选中“Team Explorer Everywhere”。点击“Next”再点击”Next”,选中“I accpet the terms.......”,点击“Finish”,等待安装完成,重新启动。使用...原创 2018-11-16 17:23:51 · 242 阅读 · 0 评论 -
thinkphp的select和find的区别
thinkphp是比较好的php开发框架,能比较快速的开发MVC架构的管理系统,我们需要用到 select()和find()方法,两个方法都能返回数据集数组,但有什么不同呢?先看一下我的代码对比:$tech=M('techlevel','HR_CS_','DB_CONFIG2');$Data=$tech->where('id=1')->find();dump($Data);$...转载 2019-02-26 16:20:01 · 167 阅读 · 0 评论 -
php如何判断一个数组为空数组
1. isset功能:判断变量是否被初始化说明:它不会判断变量是否为空,并且可以用来判断数组中元素是否被定义过例如:<?php$a = '';$a['c'] = '';if (!isset($a)) echo '$a 未被初始化' . "";if (!isset($b)) echo '$b 未被初始化' . "";if (isset($a['c'])) ech...转载 2019-02-26 16:18:41 · 233 阅读 · 0 评论 -
rabc的权限控制流程梳理php
整理开发过程中的权限模型设计常见的权限模型有如下这些;1,ACL 访问控制列表 ,2,RBAC 基于角色的权限控制3,ABAC 基于属性的权限控制 ,4,PBAC 基于策略的权限控制以下就是对其中的RBAC的权限控制模型实现描述:RBAC的实质就是控制不同的角色的访问不同的资源,如果需要删除,编辑一组相同用户的权限,只需要删除该角色下面权限,即可删除一组用户的权限,...原创 2019-02-20 12:25:02 · 647 阅读 · 0 评论 -
配置zendstudio的xdebug调试过程
Win7 64bitZendStudio10.6.2(破解文件:http://download.csdn.net/download/xinzheng_wang/7643419)PHP如何下载对应的XDebug版本复制phpinfo整个网页内容(Command+A),粘贴到https://xdebug.org/wizard.php 确定Xdebug版本XDebug下载...原创 2018-11-23 15:57:26 · 132 阅读 · 0 评论 -
ajax请求,请求成功了,并且放回状态为200,但是就是不进入success事件,添加error事件竟进入了error事件
发送一个ajax请求,请求成功了,并且放回状态为200,但是就是不进入success事件,添加error事件竟进入了error事件。出错原因是:JSON格式转化不规范或者JSON数据转化错误导致的。1,返回的数据类型不符合接收端的规范,前端调整dataType:”json”,而后台返回的数据不符合json规范,dataType为json,但是返回的data不是json格式。解决...原创 2018-11-22 09:15:02 · 1162 阅读 · 0 评论 -
php错误提示开启关闭有两种方式
php错误提示开启关闭有两种方式,一种是在php.ini配置文件中设置。另一种是在php文件中利用函数ini_set()和error_reporting()设置。1.在php.ini中找到 display_errors,设置错误提示的开启和关闭,off时关,on时开。同时设置error_reporting的值代表错误的级别。一些常用值 E_ALL (Show all errors, w...转载 2018-11-23 16:20:22 · 940 阅读 · 0 评论 -
thinkPHP5 引入模板
有三种方法:第一种: 直接使用 return view(); 助手函数第二种: use think\View; class Admin extends View 见下第三种: use think\Controller; class Admin extends Controller return $this->>fetch();<?php...转载 2018-11-23 16:16:12 · 401 阅读 · 0 评论 -
配置php Redis环境(Windows)
一、安装Redis 1,这里选择在github官网上下载Redis,地址:Redis下载地址,并解压到本地目录,例如在E:\redis2,验证Redis安装是否成功打开命令窗口,然后进入Redis目录,E:\redis,然后运行命令:redis-server redis.windows.conf 出现如下图表示安装成功3,设置Windows本地开机自启动服务redis-se...转载 2018-11-16 17:03:56 · 179 阅读 · 0 评论 -
php封装的mysqli类
本文实例讲述了php封装的mysqli类。分享给大家供大家参考,具体如下:类: <?phpheader('content-type:text/html;charset=utf-8');/*掌握满足单例模式的必要条件(1)私有的构造方法-为了防止在类外使用new关键字实例化对象(2)私有的成员属性-为了防止在类外引入这个存放对象的属性(3)私有的克隆方法-为了防止在类外通...转载 2018-11-21 11:12:23 · 1295 阅读 · 3 评论 -
php mysql防止sql注入详解
引发 SQL 注入攻击的主要原因,是因为以下两点原因: 1. php 配置文件 php.ini 中的 magic_quotes_gpc选项没有打开,被置为 off 2. 开发者没有对数据类型进行检查和转义 不过事实上,第二点最为重要。我认为, 对用户输入的数据类型进行检查,向 MYSQL 提交正确的数据类型,这应该是一个 web 程序员最最基本的素质。但现实中,常常有许多小白式的...转载 2018-11-21 11:05:33 · 580 阅读 · 0 评论 -
php操作mysql防止sql注入(合集)
本文将从sql注入风险说起,并且比较addslashes、mysql_escape_string、mysql_real_escape_string、mysqli和pdo的预处理的区别。当一个变量从表单传入到php,需要查询mysql的话,需要进行处理。举例:$unsafe_variable = $_POST['user_input']; mysqli_query("INSERT INTO...转载 2018-11-21 11:04:14 · 3652 阅读 · 0 评论 -
对微信公众号中的unionid和openid的浅解~
UnionID机制,官方的解释是:通过获取用户基本信息接口,开发者可通过OpenID来获取用户基本信息,而如果开发者拥有多个公众号,可使用以下办法通过UnionID机制来在多公众号之间进行用户帐号互通。只要是同一个微信开放平台帐号下的公众号,用户的UnionID是唯一的。换句话说,同一用户,对同一个微信开放平台帐号下的不同应用,UnionID是相同的。此前的OpenID机制,每个微信号对应...原创 2018-11-29 10:27:15 · 7146 阅读 · 0 评论 -
php中判断变量是否为空
判断变量是否为空的方法:isset函数是检测变量是否设置,判断变量是否被初始化说明:它并不会判断变量是否为空,并且可以用来判断数组中元素是否被定义过注意:当使用isset来判断数组元素是否被初始化过时,它的效率比array_key_exists高4倍左右若变量不存在则返回FALSE若变量存在且其值为NULL,也返回FALSE若变量存在且值不为NULL,则返回TURE...原创 2018-11-28 09:26:48 · 710 阅读 · 0 评论 -
php 变量范围
变量的范围即它定义的上下文背景(也就是它的生效范围)。大部分的 PHP 变量只有一个单独的范围。这个单独的范围跨度同样包含了 include 和 require 引入的文件。例如:<?php$a=1;include'b.inc';?>这里变量$a将会在包含文件b.inc中生效。但是,在用户自定义函数中,一个局部函数范围将被引入。任何用于函数内部的变量按缺省情...原创 2019-03-01 16:33:13 · 209 阅读 · 0 评论 -
腾讯云【OCR-行驶证驾驶证识别】PHP - POST请求 Api踩的坑 Demo
一,使用 image 的请求包 $appid = "9999999"; $secretId = 'dfghthiUXuEhvQgy1p4Uffffff'; $secretKey = 'dfgrtyVNPM5yPr9HHnertyuop'; $bucket = "8"; $expired = time() +...原创 2019-02-12 14:06:05 · 1394 阅读 · 0 评论 -
Windows 下 配置 ngrok ngrok使用教程
ngrok介绍ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。简单来说就是可以通过外网访问你本地的服务器。这样可以方便调试本地的后台代码,不用老是把代码上传到外网服务器如bae、sae等。官方网站网址:https://dashboard.ngrok.com/get-started...原创 2019-02-22 09:58:44 · 901 阅读 · 0 评论 -
windows下PHP的oci和pdo_oci扩展安装
http://www.oracle.com/technetwork/topics/winsoft-085727.html解决问题的网站:http://www.devside.net/wamp-server/connect-wamp-server-to-oracle-with-php-php_oci8_11g-dll需要注意的点:1、PHP5版本不直接兼容oci82、需要安装ora...转载 2019-02-12 14:24:29 · 1443 阅读 · 0 评论 -
php 二维数组去重
php 二维数组去重function remove_duplicate($array){ $result=array(); foreach ($array as $key => $value) { $has = false; foreach($result as $val){ if($val['id']==$value['id']){ $h...转载 2019-01-07 10:00:56 · 153 阅读 · 0 评论 -
php中做微信分享链路跟踪(无极限菜单应用)
最新做的工作当中有个任务是要做一个微信分享链路跟踪,效果图如下图所示:为了实现这个工作任务学习进步了不少,特此记录一下,这里使用的是引用方式实现的代码,需要使用的分析数据结构如图:常用的递归算法如下:1.使用循环,分别获取所有的根节点。2.在获取每个节点的时候,将该节点从原数据中移除,并递归方式获取其所有的子节点,一直原数据为空。方法1:如果使用递归函数的方式实...原创 2018-12-06 15:45:34 · 1030 阅读 · 0 评论