PHP
文章平均质量分 55
木鱼show
时光清浅处,一步一安然
展开
-
php项目接入xxl-job调度系统
1.部署xxl-job调度中心此处略,请自行百度。下面重点介绍如何将php项目接入xxl-job调度。2. 整合xxl-job调度系统核心是使用xxl-job的GLUE运行模式,通过一段php代码片段,调用远程的http资源。2.1 创建执行器项目参考执行器示例项目, xxl-job-executor-samples/xxl-job-executor-sample-springboot,修改下其中的 application.properties 文件,内容如下:# 执行器..原创 2021-12-14 16:04:24 · 1120 阅读 · 0 评论 -
跟我学,一步步教你搭建文档自动化工具Swagger-PHP(ThinkPHP5环境)
1. 安装Composer确认Composer是否已安装,cmd窗口输入命令:composer -V如果能看到版本号信息,说明Composer已经安装,如图:否则请自行下载安装,下载地址:https://getcomposer.org/download/2. 安装swagger-phpcmd窗口中,切换到TP5项目的根目录,输入命令:composer require zircote/swagger-php安装成功后,vendor目录下...原创 2020-11-13 14:22:17 · 2752 阅读 · 4 评论 -
linux下本地用户认证机制的实现(php版)
绝大多数情况下,一款Web应用系统的用户认证机制,最常见的实现方式,就是自定义用户管理功能,该模块是内嵌在web应用中,随web应用一起发布出去的。然而,对于一些特殊的应用,尤其是基于linux服务器的应用软件,它们会经常使用linux本地的用户认证机制,来实现用户的认证功能。下面就来看一下在平时的开发过程中如何使用linux的本地用户认证机制。首先,明白一点,linux系统中,真正的用户账号原创 2017-02-17 14:47:15 · 1171 阅读 · 0 评论 -
apache,php常用配置
apache常用配置1. ServerRootServerRoot "D:/program/myplatform/Apache2.2"设置apache的安装目录2. ListenListen 80设置apache服务器的运行端口号3. DocumentRootDocumentRoot "D:/workspace"设置apache服原创 2016-07-14 16:43:46 · 645 阅读 · 0 评论 -
windows下配置apache+https
通过https反向代理映射到http地址,可实现以https的方式,访问普通的http网站。主要涉及到以下三个配置文件的修改:httpd.confhttpd-ssl.confhttpd-vhosts.conf具体实现步骤:1. 修改conf/httpd.conf取消ssl及proxy相关注释#LoadModule ssl_module modules/m原创 2018-01-10 14:34:15 · 48522 阅读 · 26 评论 -
ThinkPHP5与GatewayWorker集成(windows环境)
1. 安装GatewayWorker类库composer require workerman/workerman-for-wincomposer require workerman/GatewayWorker-for-win安装完成后,目录结构如下:2. 编写代码在application目录下,创建一个应用模块,模块名称为gatewayapp,其目录结构如下:con...原创 2018-07-23 17:07:22 · 7228 阅读 · 11 评论 -
php常用日期相关函数
/** * 获取指定日期所在周的起止时间 * @param null $curTime * @return array */public function getCurWeek($curTime=null) { $curTime = $curTime ? : date('Y-m-d'); //获取当前周的第几天 周日是 0 周一到周六是 1 - 6 $week = date('w...原创 2018-07-13 11:00:52 · 944 阅读 · 0 评论 -
检测ip地址库内是否存在指定的ip
检测ip地址库内是否存在指定的ip,支持精确匹配、尾部*号匹配及ip区间匹配。应用场景:ip 白名单 / 黑名单、系统后台限制内网访问等。/** * 检测ip地址库内是否存在指定的ip,支持精确匹配、尾部*号匹配及ip区间匹配 * @param string $ip 待检测的ip字符串 * @param array $ipList ip数组列表,该参数为空时...原创 2018-08-01 09:57:48 · 988 阅读 · 0 评论 -
UEditor图片跨域上传解决方案
预设环境UEditor版本:1.4 客户端地址:http://www.aaa.com 图片服务器地址:http://www.bbb.com 图片服务器端UEditor的部署URL:http://www.bbb.com/ueditor/ 客户端和图片服务器各部署一套UEditor环境客户端修改修改1:/ueditor/ueditor.config.js将原有的serve...原创 2018-08-10 21:12:03 · 4499 阅读 · 6 评论 -
QueryList异步抓取网页数据
环境要求:php7及以上phantomjs引擎 下载地址QueryList4.0核心思想:根据抓取对象网页的布局,编写相应的规则,规则语法参考jquery即可。抓取示例:京东商城产品列表抓取规则://京东商城采集规则配置$rules = array( 'product_list' => array( 'url' => 'h...原创 2018-08-07 08:32:18 · 4278 阅读 · 1 评论 -
phalapi框架改进方案,在一套phalapi系统上,管理多套api应用
版本:PhalApi 2.2.3请自行安装好PhalApi,然后按照步骤,作如下修改。修改思路:在src/app/Api目录下,根据需要,创建若干个api应用,每个应用以文件夹的形式存在,然后根据每个api的应用名称,创建对应的数据库配置文件。涉及到的文件如下:修改1:config/di.php原来的notorm实例化操作如下:// 数据操作 - 基于NotORM$di...原创 2018-08-02 17:31:37 · 2212 阅读 · 1 评论 -
Windows下安装Redis及php的redis扩展
目录 Redis简介 环境要求 安装Redis 数据持久化 主从复制 启动Redis命令行方式启动:系统服务方式启动: 客户端测试 安装php-redis扩展 php客户端使用 Redis相关完整软件包Redis简介 Redis是一个key-value存储系统。和Memcach...原创 2018-08-07 15:06:33 · 11843 阅读 · 0 评论 -
Apache配置项目图片地址映射
项目需求将服务器物理磁盘上的某个目录,映射到apache能够访问到的url地址上。以此来达到图片和代码的分开部署,同时也方便项目后期的文件迁移,当图片资源变的越来越大,大到需要几个小时,甚至一整天的时间,来迁移图片资源时,这种分开部署的优势,将会更加明显。解决方案方案一搭建独立的图片服务器,用来处理所有的图片资源,该方案有可能会涉及到资源的跨域访问问题。方案二利用a...原创 2018-08-19 17:47:40 · 1908 阅读 · 1 评论 -
ThinkPHP5水平分表后分页查询解决方案
ThinkPHP5内置了partition方法,可用于实现简单的分表。新增,修改,删除,查询单条数据时,用partition方法都可以轻松搞定,因为这些操作有一个共同的特点,就是能事先明确的知道,我要操作的是哪一条记录。但有一个需求,ThinkPHP5似乎没有解决,比如当一个大表,被拆分成若干个子表时,如何根据相关条件及排序获取分页数据。这种需求场景下,由于事先并不知道哪些数据会出现在第一页,哪些...原创 2018-09-06 20:36:46 · 11301 阅读 · 1 评论 -
ThinkPHP5 动态生成图片缩略图
需求场景不同终端(PC端、手机端、平板),不同界面(列表页、详情页),对图片大小的要求不一样, 如果所有场景下都使用同一尺寸的图片,势必对会网络带宽及服务器性能造成一定的影响,由此需要服务器端能够根据前端的请求参数,自动匹配出相对应的图片资源,以此来降低服务端的压力,同时也能给用户带来更友好的用户体验。具体步骤如下:1 开启apache的rewrite功能,具体方法请自行...原创 2019-05-09 16:18:59 · 710 阅读 · 0 评论 -
xampp安装过程(linux版)
准备从官方站点https://www.apachefriends.org/zh_cn/index.html下载linux版本的xampp,下载完成后,将该软件包上传到linux主机的某个目录下。开始1、执行安装脚本2、确认安装3、安装进度4、安装完成注意:lampp的安装目录为/opt/lamp原创 2016-07-14 14:07:25 · 1105 阅读 · 0 评论 -
ThinkPHP中坑爹的关联模型
ThinkPHP中的关联模型极大的方便了我们的数据处理,但是一不留神就会掉进它的坑里,今天下午有个同事就不幸中招了,故在此做个备忘,希望广大程序员们能跳过这个坑。涉及的关联模型:HAS_ONE,HAS_MANY,MANY_TO_MANY众所周知,在定义以上关联模型时,需要设置foreign_key属性,但是这个属性默认映射的字段是一个表的主键,在ThinkPHP中,主键的字原创 2016-09-26 17:38:01 · 2531 阅读 · 1 评论 -
LNMP环境搭建
友情提醒LNMP一键安装包可以非常方便的帮我们搭建php的运行环境,为我们节省了大量的时间和精力,但尽管如此,对于生产环境,我还是强烈不建议使用它。1. 下载并上传软件包将软件包通过ftp或者ssh上传到服务器的某个目录下,如:/usr/local/src软件包下载地址:http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz2.原创 2016-08-15 11:01:09 · 695 阅读 · 0 评论 -
php几个比较实用的函数示例
1. 生成唯一IDecho uniqid();2. 生成带前缀的唯一IDecho uniqid('prefix_');3. 将数组中的所有元素转换为大写最容易想到的实现方式应该是循环处理,如下: $colors = array('red','green','blue'); foreach ($colors as &$color) { $color = s原创 2016-07-13 16:30:47 · 335 阅读 · 0 评论 -
php反射代码
通过反射,我们可以获知类的内部结构,提取对象信息,比如类的方法、属性、文档注释等等,但这仅仅是反射应用的冰山一角,下面是我曾经写过的反射工具类,以作备忘。<?phpclass ReflectorUtil { private static $reflect = null; private static $reflectInstance = null; /** * 动态执行类原创 2016-07-23 11:09:11 · 401 阅读 · 0 评论 -
php://input、$_POST与$GLOBALS['HTTP_RAW_POST_DATA']三者的区别
$_POST只有Coentent-Type的值为application/x-www.form-urlencoded和multipart/form-data两种类型时,$_POST才能获取到数据。$GLOBALS['HTTP_RAW_POST_DATA']如果php无法识别Coentent-Type类型,也就无法获取请求数据,这个时候,可以用$GLOBALS['HTTP_RAW_PO原创 2016-07-14 10:15:28 · 1764 阅读 · 0 评论 -
PHP中sqlite3的使用
SQLite是一种轻量级的关系型数据库,可以内嵌在我们的应用程序中一起发布出去,这样我们在部署应用的时候,就不需要额外数据库的支持了。在php中如果要使用sqlite,只需开启php_sqlite3.dll扩展即可,非常方便。下面是我曾经的一个项目中,自己编写的一个操作SQLite数据库的工具类。<?phpclass SQLiteDB extends SQLite3 { functi原创 2016-07-28 15:05:00 · 15725 阅读 · 3 评论 -
PHP执行Linux命令的两个有用的函数exec和shell_exec
php中的exec和shell_exec两个函数都可以用来执行linux命令,但它们在使用方式以及结果的返回上,差别还是比较大的。exec调用方式:exec($cmd.' 2>&1',$output,$status);$cmd:shell脚本2>&1:表示shell脚本执行过程中的错误信息会被输出$output:数组格式,用于存储2>&1输出的错误信息原创 2016-08-18 15:10:38 · 5879 阅读 · 0 评论 -
PHP7运行环境搭建(Windows7)
php7号称能直追facebook的HHVM,为了体验一把传说中的高性能,我特意在本地电脑上尝试着安装了php7,不得不承认,php7的运行环境相对于之前的php5来说还是有一点苛刻的。下面开始进入主题。一.环境准备1. windows7版本要求如果你用的是win7系统,必须确保你的系统上安装了SP1这个更新包,这个绝对是必要条件,如图:2.原创 2016-08-29 10:59:00 · 16320 阅读 · 0 评论 -
Linux下swoole环境搭建
传统php在传统的思维定式中,提起php,很多人都认为它就是一个搞网站的服务器端语言,事实上也确实如此,在网络通信,游戏,物联网,智能家居等领域,php就显得很不受欢迎了,但是swoole的出现,将彻底打破这个格局,它让php跳出了传统的web开发,在服务器网络编程领域大放光彩。一句话,swoole大大延伸了php的应用领域。什么是swooleswoole是一个高性能的异步网络通信引擎原创 2016-08-30 11:03:52 · 6648 阅读 · 2 评论 -
PHP包管理工具Composer的安装与使用(Windows环境)
Composer是PHP用来管理依赖(dependency)关系的工具,我们只需要在自己的项目中声明所依赖的外部工具库(libraries),剩下的事情交给Composer来做就好了。下面,我来演示下在Windows环境下是如何安装和使用Composer的。1. 设置php环境变量为了能方便的运行composer.phar文件,我们需要将php的安装目录加到系统的path变量中。如原创 2016-08-22 16:38:31 · 9612 阅读 · 0 评论 -
PHP后台守护进程的实现方式(Linux环境)
应用场景某些情况下,我们需要持续的周期性的提供一些服务,比如监控内存或cpu的运行状况,这些应用与客户端是没有关系的,不是说客户端(如web界面,手机app等)关闭了,我们就不监控内存或cpu了,为了应对这种业务场景,后台守护进程就可以派上用场了。所需环境Linux实现方式1. 准备php脚本在/usr/local/src/目录下,新建一个daemon.原创 2016-08-23 10:53:20 · 14057 阅读 · 2 评论 -
Linux下memcached的安装和配置
Memcached简介Memcached 是一个高性能的分布式内存对象缓存系统,它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高系统的响应速度。Memcached缓存的数据,本质上就是一个hash键值对。安装准备需要事先准备好如下软件包:libevent-1.4.13-4.el6.x86_64.rpmlibmemcached-0.31-1.1.el6原创 2016-08-23 17:44:52 · 821 阅读 · 0 评论 -
php中巧用sprintf组合sql语句
在php中,拼接mysql的语句时,通常情况下,会使用点操作符,如下:$user_id = 1;$subject = '哲学';$sql = "select * from scores where `user_id`=".$user_id." and `subject`='".$subject."'";以这种方式来拼接sql,会比较繁琐,尤其是当参数比较多的时候,下面,利用ph原创 2016-08-24 10:35:20 · 1733 阅读 · 0 评论 -
PHP函数register_shutdown_function的使用示例
某些情况下,我们需要在程序执行结束时,做一些后续的处理工作,这个时候,php的register_shutdown_function函数就可以帮我们来实现这个功能。函数简介当PHP程序执行完成后,自动执行register_shutdown_function函数,该函数需要一个参数,用来指定由谁处理这些后续的工作。其中,程序执行完成,分为以下三种情况:第一种:php代码执行过程中发生错原创 2016-08-23 15:21:16 · 10221 阅读 · 0 评论 -
php中XML与数组的相互转换
做微信开发的同学,对xml肯定不会陌生,其中,对xml的解析与拼装更是家常便饭,今天,分享两个比较实用的函数,用来辅助我们的开发工作。1. 将xml解析成数组输出/** * 将xml转换为数组 * @param string $xml:xml文件或字符串 * @return array */function xmlToArray($xml){ //考虑到xml文档中可能会包含标原创 2016-08-25 11:09:41 · 6062 阅读 · 0 评论 -
php调试利器:FirePHP的安装与使用
做开发的人都知道,我们可以利用浏览器的控制台来调试JavaScript脚本,但是对于像php这种服务端的脚本,你知道如何调试吗?今天给大家推荐一个php调试利器,FirePHP!以Chrome浏览器为例,具体实施步骤如下:1. 安装FirePHP插件在Chrome浏览器的应用商店中,搜索firephp关键词,在出来的插件列表中,选择第一个,将它添加到Chrome即可。如图:原创 2016-08-25 14:48:51 · 4247 阅读 · 0 评论 -
Nginx简单配置(Windows环境)
一. 安装Nginx将下载后的nginx压缩包解压到某个目录下,比如:D:\program\myplatform\Nginx\nginx-1.10.0,解压后的目录结构为:二. 配置配置目标:能正常运行php脚本程序大部分情况下,我们需要修改的配置文件只有一个,那就是nginx.conf,该文件位于conf目录下。具体配置项目为:1. l原创 2016-07-22 10:57:29 · 35603 阅读 · 0 评论