php
重口味码农
本博客用于记录自己学习中遇到的疑惑和记录,希望能和大家多多交流。
展开
-
第六周——第一个PHP程序
问题及代码:第一个PHP程序<?echo"欢迎进入PHP的世界!!";?>运行结果:暂无知识点总结:echo是打印,里面会被认为是php代码。心得及体会:去年就学过dreamweaver,但是只是用来学css做前端,现在要用它开发php。现在环境还没搭建成功。晚上再加油!一定要掌握php。原创 2015-10-17 21:42:49 · 2339 阅读 · 0 评论 -
PHP实现非递归先序、中序、后序遍历二叉树
先序遍历:利用栈先进后出的特性,先访问根节点,再把右子树压入,再压入左子树。这样取出的时候是先取出左子树,最后取出右子树。function preorder($root){ $stack = array(); array_push($stack, $root); while(!empty($stack)){ $center_node = array_pop原创 2017-04-22 11:02:45 · 1606 阅读 · 2 评论 -
我为什么从SVN转向GIT
使用SVN已有一年半时间,不管是自己使用或者几个人一起开发,一直感觉svn非常好用,集中式的版本管理,清晰的版本号控制,使合并代码和了解开发进度非常容易。当时也稍微了解git,但是不能理解为什么要分布式的代码管理。但是慢慢,使用svn的一些缺点也暴露出来,一是离线情况比较麻烦,我比较喜欢拿着笔记本单机码代码,而且是一个重度commit狂,经常写完一个模块就需要commit,对于需要时时连线的svn比原创 2017-05-28 17:14:06 · 663 阅读 · 0 评论 -
PHPER必读电子书推荐-《PHP扩展开发及内核应用》
一本主要讲PHP扩展开发的电子书,前半部分详细讲解了PHP的底层实现原理与内核。对PHPER深入了解PHP的性能等很有帮助。码起来原创 2017-04-21 20:13:45 · 939 阅读 · 0 评论 -
RESTful API中常用的Http状态码
在RESTful Api开发中,使用Http用来返回错误和状态是非常常用和友好的,其中常用的状态 码有以下这些。200 – OK – 一切正常 201 – OK – 新资源已经被创建 204 – OK – 资源删除成功304 – 没有变化,客户端可以使用缓存数据400 – Bad Request – 调用不合法,确切的错误应该在error payload中描述,例如:“JSON 不合法 ”原创 2017-06-01 11:11:01 · 7760 阅读 · 0 评论 -
Linux php not found 解决方法
造成这种情况一般有几种原因。 1、系统PATH没有配置或配置不全。 2、php没有放在PATH中。检查PATH首先 echo $PATH一下。看环境变量是否包含/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin这些。查找php文件的位置。 whereis php或find / -name '原创 2017-06-05 18:30:33 · 6318 阅读 · 0 评论 -
php 运行时 is not writable、open_basedir restriction in effect
在命令行运行php时,如果命令中有文件操作,经常会出现如下错误。PHP Warning: realpath(): open_basedir restriction in effect. File(/a/apps/linuxdef/composer) is not within the allowed path(s): (/tmp/) in - on line 626PHP Warning: i原创 2017-06-05 18:37:42 · 3379 阅读 · 0 评论 -
Linux 安装 composer
1、一条龙命令 curl -sS https://getcomposer.org/installer | php 可能会出现以下问题: - curl not found。需要安装curl。 - php not found。请参考php not found - 提示文件夹 is not writable、open_basedir restriction in effec原创 2017-06-05 18:47:20 · 802 阅读 · 0 评论 -
使用composer安装laravel框架
larrvel框架是使用composer来管理,所以使用composer直接安装是非常方便的。安装composer 戳这里。一,利用Laravel安装工具安装1,使用 Composer 下载 Laravel 安装包:composer global require “laravel/installer”2,下载完成后,就可以利用Laravel提供的安装工具安装例如要做一个blog项目,将命令行切换到原创 2017-06-06 19:53:58 · 1638 阅读 · 2 评论 -
将本地已有的项目推送至Github
经常会出现这样的情况,本地已经写了一段时间的项目想放到Github上,但是一般的流程是先在Github上创建项目再拉取下来。有一种办法是将已有的项目内容拷贝进去。但是作为开发者有没有更优雅一点的方法呢。解决方案 使用以下命令: 1. git init 2. git add README.md 3. git commit -m “first commit” 4. git remote原创 2017-06-06 19:59:21 · 1113 阅读 · 0 评论 -
Linux 多版本php切换
php开发者经常会遇到这种情况,开发用的语言有时是5.3,有时是5.6。总不能每次切换版本都要重新安装一次php吧。 还好有解决方案,就是在系统中编译多个版本的php,在切换时只需要修改一下快捷方式就可以了。首先,系统中编译有多个版本的php以应对不同环境。 想要切换系统中php版本。分别有这几个地方需要改。一、http用到的php版本一般nginx是使用php-fpm来运行php,所以需要将正原创 2017-07-25 15:16:10 · 10412 阅读 · 0 评论 -
关于OOP设计模式简介
每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。– Christopher Alexander 设计模式描述了软件设计过程中某一类常见问题的一般性的解决方案。面向对象设计模式描述了面向对象设计过程中、特定场景下、类与相互通信的对象之间常见的组织关系。设计模式与面向对象 面向对象设计模式解决的是“类与相互通信的对象之间的组织关系,包括它们的角色、职责、协作方式几个方面转载 2017-03-06 10:20:31 · 2920 阅读 · 0 评论 -
关于MVC架构的深入思考-发现自己错误
最近课比较少,读了基本PHP大作,也在github上阅读了几个优秀作品的源码,发现了自己在以往的代码结构中的可笑之处。 php,做的最多的应该就是网站,其中进来通用的架构就是mvc架构,将视图、模型、控制器分开,以方便不同角色开发人员工作,前端和后端可以彻底分开。其中,将v分隔开,是非常容易理解的,只要数据和逻辑完全不出现在视图部分就可以了。但是MV这两部分如何区分,在初学这种架构时是一个大难原创 2017-03-05 21:34:45 · 3917 阅读 · 0 评论 -
第六周——PHP的标记风格
问题及代码:php的标记风格<? echo"这是剪短风格的标记";?><?echo"这是剪短风格的标记";?>echo"这是脚本风格的标记";<%echo"这是ASP风格的标记";%>运行结果:知识点总结:四种风格的标记,但是XML和ASP风格没法直接用。需要修改windos文件夹中的php.ini.心得及体会:为了配置原创 2015-10-18 11:07:49 · 2527 阅读 · 0 评论 -
第八周——php的变量和方法
问题及代码:<?php/* *Copyright (c)2015,西南大学计信院 *All rights reserved. *文件名称:Helloworld.java *作 者:高硕*完成日期:2015年10月28日 *版 本 号:v1.0 *问题描述:变量和方法。 *程序输入:无。 *程序输出:一句话。 */ $a=10; $原创 2015-10-28 11:03:21 · 383 阅读 · 0 评论 -
第七周——打印表格
问题及代码:做一个表格<?php echo ""; echo "1"; echo "2"; echo "3"; echo "4"; echo "5"; echo "6"; echo "7"; echo "8"; echo "9"; echo "10"; echo "11"; echo "原创 2015-10-29 20:49:07 · 488 阅读 · 0 评论 -
php实现前端的登录登出模块
一般网页都要用到登录登出模块,于是写了一个通用的记录下来。放在前台页面中即可使用。 登录,欢迎使用本系统。放置于前端页面中即可使用。这样实现比较简单,但是安全性有待提高,希望大家能指出错误。原创 2016-06-18 20:44:04 · 1330 阅读 · 0 评论 -
php的魔术方法
魔术方法:魔术方法是PHP面向对象中特有的特性。它们在特定的情况下被触发,都是以双下划线开头,你可以把它们理解为钩子,利用模式方法可以轻松实现PHP面向对象中重载(Overloading即动态创建类属性和方法)。魔术方法很多还是成对出现的,以下列出目前PHP中所有的模式方法。 以两个下划线开始,表示这些方法在php特定事件下将会被触发。这可能听起来有点自动魔法但是它真的很酷的,我们已经看过一原创 2016-09-21 18:12:04 · 1016 阅读 · 0 评论 -
php的WRITE_LOG
写了个函数记录日志方便进行调试。/** * * 写入本地日志文件 * 默认Log.txt * @param string $text 要写入的信息 */ function logtext($text){ $time =date('y-m-d h:i:s',time()); file_put_contents('原创 2016-12-08 17:21:22 · 4113 阅读 · 2 评论 -
PHP面向对象编程设计模式(一)策略模式
在面向对象的入门课程C++(或者JAVA)中,封装数据和方法好像是面向对象最重要的一个特点,当然还有基于继承实现的多态和重载。其实每一种OOP语言,由于彼此功能上的差异性,这些特点只能适用于某一种特定的任务。 比较公认的一点是,开发面向对象的软件不仅要注重语言和语法特性,设计思想也是尤其重要的一点。相对于面向过程的语言,面向对象的语言更原创 2017-03-05 15:43:15 · 4852 阅读 · 0 评论 -
PHP面向对象编程设计模式(二)单例模式
在Php编程中,单例模式虽然不是最常用,但一定是最不可缺少、应用非常广泛的一种设计模式,虽然你可能不太了解它,但只要你有过开发一个完成系统的经历,相信我,你一定使用过它。介绍单例模式(Singleton Pattern),也被成为单件模式,确保某个类只能有一个正在运行的实例,而且自行实例化并且向系统提供这个实例。有且只有一个 是单例模式最重要的特点。特点1.只能有一个实例。2.必须自行创建这个实例。原创 2017-03-05 16:22:15 · 4149 阅读 · 0 评论 -
PHP面向对象编程设计模式(三)工厂模式
介绍 在前面文章中提到的策略模式提到过,需要客户自行选择类并创建实例,那么这个选择的过程放在哪里呢,如果在每一个需要此对象的地方都new一个,那必然会有代码重复,而且如果修改也会很麻烦,这样不符合面向对象的封装原则。所以,工厂模式出现了。 由工厂类根据参数来决定创建出哪一种产品类的实例; 工厂类是指包含了一个专门用来创建其他对象的方法的类。所谓按需分配,传入参数进行选择,返回具体的类。工厂原创 2017-03-05 18:14:06 · 3980 阅读 · 0 评论 -
PHP面向对象编程设计模式(四)观察者模式
介绍 你在编程中可能会遇到过,有时一个对象的状态改变会影响很多类的行为,比较典型的就是在购买流程中,购买成功后会影响库存、销量、会通知发货、有的还需要发送短信。购买这个行为在发生变化时需要同时发生其他行为,但是如果写在一起,一旦流程发生变化,改起来会比较麻烦,将这些行为写在一起的耦合度也太高,观察者模式可以解决这个问题,通过观察者和状态主题互相注册的方式,使主体在发生变化时能够通知观察者,两者组合原创 2017-03-05 20:51:43 · 4127 阅读 · 0 评论 -
php_zip扩展安装过程
最近在使用PHPExcel的时候,在本地的windows环境下没问题,提交到linux中,excel2007就会出现问题,原来excel2007使用了php的zip扩展\ZipArchive,但一般没有安装此扩展,记录一下安装过程。安装过程下载 cd /usr/src wget http://pecl.php.net/get/zip-1.5.10.tgz (具体版本请到pecl.php.net原创 2017-09-05 15:07:28 · 6793 阅读 · 2 评论