php
励志成为一个弓箭手的程序猿
爱编程,爱运动。自学Web开发,坚持锻炼。感谢自己的每一次付出,为了生活是桩美妙的事而生活
展开
-
PHP常用正则表达式汇总
php常用正则表达式汇总转载 2016-02-17 14:34:17 · 344 阅读 · 0 评论 -
Linux下使用laravel5.2
1.首先到官网下载laravel5.2压缩包,您也可以使用composer安装。 2.之后解压到文件夹中,这里我创建了一个city的文件夹。 3.在linux下赋予city权限chmod -R 777 /home/wwwroot/default/city4.配置虚拟主机 这里注意将虚拟主机的目录配置到public文件夹 这是我的配置目录,大家参考配置自己的目录/home/wwwroo原创 2016-06-14 18:26:37 · 1910 阅读 · 0 评论 -
PHP中的三种基本设计模式
既然学习了PHP的面向对象编程,那么学习设计模式就是必然的了前几天一直在看关于设计模式的教程和书籍,我理解的设计模式就是一种思想,让编程变得更加有条理,更加聪明,通过学习设计模式发现自己的不足,原来代码是可以这样子滴!工厂模式单例模式注册树模式1.工厂模式什么是工厂模式呢,光看概念的话肯定是不容易理解的那么就用代码说话:<?phpheader('Content-Type:text/htm原创 2016-04-07 10:53:53 · 489 阅读 · 0 评论 -
PHP数组和对象的相互转换
关于php中想让对象以数组的形式访问,这时候就需要使用到get_object_vars()函数了。先来介绍一下这个函数。官方文档是这样解释的:array get_object_vars ( object $obj )返回由 obj 指定的对象中定义的属性组成的关联数组。 举一个栗子:<?phpclass Point2D { var $x, $y; var $label;原创 2016-07-28 10:37:35 · 5269 阅读 · 0 评论 -
Laravel解决nesting level错误和隐藏index.php
错误提示:Maximum function nesting level of ‘100’ reached, aborting! 解决办法:因为我是在windows上搭建的wamp环境,linux和mac暂时还没有实验,首先找到php.ini找到xdebug项,在最后添加一行xdebug.max_nesting_level=500 那么laravel如何隐藏index.php呢? 首先进入publ原创 2016-09-23 18:01:05 · 2056 阅读 · 0 评论 -
关于laravel前后台多表认证登录问题
laravel学院转载 2016-10-12 16:54:28 · 1376 阅读 · 0 评论 -
PHP获取某一天前后任意时间
date("Y-m-d",strtotime('-30 days',strtotime('2016-9-30')));原创 2016-09-30 17:19:52 · 6490 阅读 · 0 评论 -
Laravel5.2使用RabbitMQ初体验
由于最近需要使用rabbitmq来进行消息队列的读取,但以前从来都没有接触过这等高深的技术,所以只好从头开始研究,下面就把这几周的成果分享出来,针对没有接触过消息队列的同学,希望能给你们一些帮助。安装rabbitmq使用composer安装laravel的php-amqplib/php-amqblib包推送消息到队列和读取队列中的消息安装rabbitmq安装rabbit首先需要安装erlang原创 2016-12-01 16:01:57 · 10637 阅读 · 1 评论 -
Laravel中简单使用Repository模式
什么是Repository模式,laravel学院中用这样一张图来解释其实将这个模式用在项目中就是为了将业务逻辑和具体的调用分开,创建一个仓库来存放这些业务逻辑。那么我们怎么使用呢?建立Repository目录来存放不同的业务逻辑 在Contracts中存放接口文件,Eloquent中存放具体的实现方法TestRepository.php<?phpnamespace App\Repositor原创 2017-01-09 17:29:25 · 6790 阅读 · 0 评论 -
laravel5.2实现区分前后台用户登录
1.前台登录直接使用laravel自带的auth php artisan make:auth 然后可以查看路由文件:Route::group(['middleware' => 'web'], function () { Route::auth(); Route::get('/home', 'HomeController@index');});执行php artisan migr原创 2017-01-10 17:48:57 · 7261 阅读 · 0 评论 -
在MAMP下PHP7安装Redis扩展
到github上下载phpredis的php7分支到本地执行phpize执行make && make install拷贝redis.so到扩展文件夹修改php.ini文件需要注意的地方: 1. 下载phpredis时要切换到php7分支 2. 进入phpredis-php7目录执行phpize 执行phpize时要选择MAMP下的你正在使用的php7版本对应的phpize命令原创 2017-02-09 17:26:13 · 2869 阅读 · 0 评论 -
PHP接口数据的封装XML和JSON
使用PHP开发app后端的接口时,我们需要返回数据,最常用的就是XML和JSON格式的数据,那么样返回呢?1.JSONjson数据是最容制造的,只要使用php自带的json_encode()函数就可以简单的制作出json数据了2.XMLxml数据就要复杂一点了,让我们看一下xml数据的格式 那么怎样构造呢?3.制作生产接口数据的类<?php//定义生成接口数据类class Api{原创 2016-05-09 15:46:32 · 4496 阅读 · 6 评论 -
PCRE正则表达式语法
字符 描述 \ 将下一个 字符标记为一个特殊字符,或一个原义字符,或向后引用,或一个八进制转义符。例如,”\n”匹配一个换行符。序列”\”匹配”\”而”(“则匹配”(“ ^ 匹配输入字符串的开始位置,如果设置了RegExp对象的Multiline属性,^也匹配”\n”或”\r”之后的位置 $ 匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也原创 2017-03-13 09:52:49 · 2089 阅读 · 0 评论 -
laravel5.4中npm run dev报错
仔细看了一下时间真的是好久都没有写博客了,去年还在认真记录遇到的每一个问题和新学到的知识,真的是惭愧。那么今天就记录一下npm run dev的问题1.安装laravel5.4composer create-project laravel/laravel zcms 5.42.npmnpm install3.npm run dev按照文档来说这时候应该已经成功了,但是这个地方我出现了两个错误。1.找原创 2017-09-14 14:10:34 · 2810 阅读 · 1 评论 -
laravel5.4使用socialite实现github登录
1.安装laravel5.4composer create-project laravel/laravel zcms 5.42.安装Socialitecomposer require laravel/socialite3.配置编辑config/app.php'providers' => [ // 其它服务提供者... Laravel\Socialite\SocialiteServic原创 2017-09-18 13:50:56 · 1316 阅读 · 1 评论 -
Phpstorm使用ftp
有时候公司使用docker机进行开发时,大家的代码都在docker机上,尤其是还有通道机,需要登录通道机才能进入docker机。这时候测试代码就及其不方便,在本地改好还需要去docker机上vim一遍,导致开发效率降低。想要用phpstorm随意编辑虚拟机上的代码吗?ftp了解一下了啊!(叫卖)安装ftp yum install -y vsftpd 安装vsftpds...原创 2018-02-27 18:21:36 · 638 阅读 · 0 评论 -
申请免费SSL,给wordpress添加https小绿锁
申请GoGetSSL免费ssl直接访问https://www.gogetssl.com/domain-validation/comodo-free-ssl/ 然后选择0刀的,create new order 下一步该注册注册。。让干啥干啥。。 generate! 在线生成CSR,保存好下面的Your Private Server Key为xxxx.key,把Your C...原创 2018-07-13 15:08:25 · 2428 阅读 · 0 评论 -
PHP7下安装memcached扩展
如果你是PHP7使用者,请自动将这篇文章的memcached-2.2.0编译安装步骤替换为该篇文章的方法。上一步已经把libmemcached安装完成了。 下面需要到github上找到php-memcached的php7分支,并clone下来放到linux上。 clone下来会发现多处了一个php-memcached-php7的文件夹,然后按照之前那篇文章进行操作就好了,只是替换了memca原创 2016-06-13 11:29:22 · 6951 阅读 · 2 评论 -
Yaf之Hello World
Windows环境下yaf框架安装yaf是鸟哥使用C写的一个PHP扩展,优点不用多说,速度最快的框架。 在Windows下使用yaf首先需要下载扩展dll文件。 1.我的PHP环境是5.5,如果需要文件可以点击这里 2.然后在php.ini文件中添加扩展,extension=php_yaf.dll 3.yaf的目录结构 4.入口文件index.php<?phpdefine(原创 2016-05-23 16:16:45 · 790 阅读 · 2 评论 -
CI框架整合Smarty模板时包含css,js文件的解决方法
本博客主要是记录使用CI框架和smarty模板制作一个实战小项目,我会持续更新并把源码放到github上。https://github.com/LittleSaber/myapp目录结构: 如果不会使用CI框架整合Smarty模板的话可以去看一下我的博客,里面详细讲解了如何整合。 application文件夹里放的是我们的控制器,模型。 templates文件夹里放的是我们的视图文件。原创 2016-03-11 14:33:17 · 1101 阅读 · 0 评论 -
简述jsonp跨域实例
关于ajax跨域请求问题首先我们需要两个域名,也就是两台机器,这里我使用本机和本地虚拟机进行测试。 1.我本地的地址是localhost,作为客户端。 2.我的虚拟机地址是192.168.254.128,作为服务端。 3.进行测试。 客户端代码jsonp.php<script>$(function() { $.ajax({ url:'http://192.16原创 2016-04-08 11:12:24 · 557 阅读 · 0 评论 -
单例模式的数据库连接和PHP实现页面静态化的第一种方法
数据库test中数据表account内容 单列模式的数据库连接类db.php<?php//单例模式的数据库连接class DB { //存储实例的静态成员变量 static public $_instance; //数据库连接静态变量 static public $_connectSource; //连接数据库配置,由于前几天学习了PDO,这里就使用PDO原创 2016-04-12 11:56:54 · 1454 阅读 · 0 评论 -
CI框架整合smarty模板
很多时候我们使用框架的时候都需要使用模板引擎,由于刚刚学习CI框架不久,如果在试图页面调用控制器传过来的数据时,总需要使用``来显示数据。如果使用smarty引擎技术就可以用固定的标签来调取数据,是代码更加简洁,将前端页面和后端数据分离开来。1.将smarty拷贝到application/libraries下,然后再根目录下下新建templates,templates_c,config,cac翻译 2015-12-30 14:24:01 · 570 阅读 · 0 评论 -
PHP中使用递归函数
下面是使用递归函数的一个小例子。 目的是根据parent_id和task_id对task进行分类。 具体实现:<?php//连接数据库,使用前几天创建的数据库连接文件进行连接,如果没有这个文件可以去我的博客里找一下require_once('./db.php');$connect = DB::getInstance()->connect();$sql = 'select task_i原创 2016-04-13 16:42:09 · 9174 阅读 · 0 评论 -
PHP多维数组排序
突然想起了一道面试题,把一个多维数组排序。 例:<?php//有一个多维数组$a = array( array('key1'=>940, 'key2'=>'blah'), array('key1'=>23, 'key2'=>'this'), array('key1'=>894, 'key2'=>'that'));//那么怎么对key1或者key2进行排序呢,这里就需原创 2016-04-11 11:02:38 · 332 阅读 · 0 评论 -
CI去除index.php和引入文件的路径问题
修改apache的配置文件打开httpd.conf文件 将这句话前面的#号去掉 LoadModule rewrite_module modules/mod_rewrite.so CI根目录下添加.htaccess文件这是我的文件目录结构 所有的css文件,图片文件都放在statics文件夹下了,这时候当我访问网站的时候发现,index.php确实去掉了,但是statics文件夹下的原创 2016-04-25 13:10:09 · 3637 阅读 · 0 评论 -
lnmp一键安装包环境下,修改php文件后会延迟生效问题
当我在我的mac上的virtualbox部署了lnmp一键安装包之后会发现,当我把lnmp上的/home/wwwroot/default文件夹共享到我的本地,然后当我修改了文件之后在浏览器上访问会出现延迟生效,这个就非常不爽了,因为想要实时看到结果才可以。重点来了! 首先打开你的phpinfo看看是否开启了opcache,如果看到已经开启了那么就确定了是这个原因了。 找到php.ini配置文件,原创 2016-05-11 10:39:54 · 2040 阅读 · 0 评论 -
PHP策略模式
个人觉得设计模式只有在实际应用中才能够慢慢的去熟悉,到最后做到心中有模式,事事有模式,哈哈例如:一个电商首页,可以根据登陆用户的性别不同显示不同的内容,比如广告和商品类别。 传统方法:在程序内部使用多个if,else进行判断,这样很难维护,比如我想要再加入一个人妖用户!那么我就要在程序中再加入else if判断,这样写出来的程序看起来很乱,而且不易维护。 策略模式: 实现的思想是这样的,创建原创 2016-04-18 23:02:53 · 509 阅读 · 0 评论 -
PHP数据对象映射模式
还是代码说话:这里还是遵循策略模式的psr-0代码规范 数据表: 数据库连接文件Db.php(如果没有可以去我的博客里面找) 自动加载类文件Config.php(如果没有可以去上一篇博客里拿过来) 入口文件DataUser.php<?phpdefine('BASEDIR', __DIR__);//自动加载在本文件中没有被定义的类require 'Config.php原创 2016-04-19 13:38:11 · 4549 阅读 · 3 评论 -
PHP观察者模式
我理解的观察者模式就是,当我们触发一个事件的时候,想要把这个操作告诉给我想要告诉的对象,让他们都执行这个操作,就是将他们绑定到这个事件下。1.定义一个基类(用于添加观察者也就是我想要通知的对象,还有通知观察者) EventGenerator.php<?phpabstract class EventGenerator{ //存储观察者,因为可以有多个要通知的对象,所以是一个数组原创 2016-04-20 10:49:51 · 411 阅读 · 0 评论 -
PHP读取目录树
前一阵时间面试XX公司笔试题中竟然有这样一道题: 使用PHP列出目录树!当时一看就懵逼了!基本的思路还是有的,不过是使用递归算法,但对PHP操作目录文件的方法却不是很了解,所以今天好好补习一下! 解题思路:列出目录中的文件。判断是否是目录,如果是目录就继续递归。将所有文件名,存入多维数组<?phpfunction recurDir($pathName){ //将结果保存在r原创 2016-05-04 17:37:44 · 4937 阅读 · 0 评论 -
PHP中的数据传输神器cURL
什么是cURL?官方是这样解释的:使用URL语法传输数据的命令行工具。 cURL:我不生产资源,我只是资源的搬运工。。。 cURL的使用场景网页资源 编写网页爬虫WebService数据接口资源 动态获取接口数据,比如天气,号码归属地等等FTP服务器里面的文件资源 下载FTP服务器里面的文件其他资源 所有网络上的资源都可以用cURL访问和下载到 检查php是否可以使用cURL原创 2016-05-05 15:35:49 · 952 阅读 · 0 评论 -
Yaf之配置和Bootstrap
1.Yaf之配置文件application.iniconf/application.ini 1.关于yaf中的配置信息大部分都写在这里了!我们先来看一个例子[common]application.directory=APP_PATH"/application/"[product : common]2.打印出配置信息看一下: application/controllers/Index.php<?原创 2016-06-01 14:07:26 · 8334 阅读 · 0 评论 -
收藏一个Yaf教程
链接地址原创 2016-06-02 11:12:13 · 843 阅读 · 0 评论 -
PHP位运算与或异或
应用场景:你是否遇到过这样的问题?我现在有个功能有很多权限控制,但是我不能使用很多字段用1,0来存储这么多权限,这样做感觉太low了,而且判断起来需要用到很多字段,维护起来好麻烦,后期如果再新增其他权限还需要新增字段。下面用一个简单的小技巧告别这种不科学和反人类的设计吧!这里只需要用到几个php的位运算,参照php官方文档所以我们只需要用一个十进制数字来存储这些权限即可,十进制转换为...原创 2019-03-26 18:10:25 · 508 阅读 · 0 评论