PHP
Yeoman92
You can! Because you were the best one of the 120.
展开
-
PHP+Mysql实现小说网站
本项目是基于本科的一个毕业设计,所以仅供做毕业设计的同学参考。项目基于WAMP开发的小说网站,分为前后台管理系统。前台:主页小说列表章节列表小说内容后台:修改用户信息修改书籍信息数据库及代码请参考:...原创 2019-06-17 16:32:45 · 6447 阅读 · 30 评论 -
ThinkPHP结合Ajax实现用户名的校验
在模板文件中通过ajax获取到用户名,然后在控制器中将用户名与数据库比较,返回校验结果给模板文件。 模板文件路径shop/Home/View/User/register.html<!--register.html--><!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/h原创 2016-11-14 15:36:09 · 1670 阅读 · 0 评论 -
Smarty_迷你模板引擎开发(1)
Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。Smarty开发原创 2016-10-24 16:19:52 · 547 阅读 · 0 评论 -
Smarty_模板引擎开发(2)
混编文件一旦生成好,就不用再次生成,直接引入即可。 (1)给每一个应用都生成一个混编文件,执行之前先判断是否存在,如果存在就直接引入 (2)如果对应的模板文件有修改,对应的混编文件还需要重新生成。通过文件的修改时间戳来确定,如果混编文件的时间戳大于模板文件的时间戳,说明模板文件未发生修改;如果混编文件的时间戳小于模板文件的时间戳,说明模板文件发生了修改。 模板引擎优化代码:原创 2016-10-24 19:57:28 · 495 阅读 · 0 评论 -
利用ThinkPHP框架项目开发(1)
这里开发一个许愿墙的小项目 该部分主要是把写好的html、css、js、图片文件引入项目中。1.在站点下新建一个wish的文件夹,在该文件夹下拷贝ThinkPHP框架主文件夹(我用的是TP3.2.3),同时在wish文件夹下新建一个程序主入口文件(index.php)。like this: 2.在主入口文件index.php中配置一些常量,并引入ThinkPHP框架文件。like this:<原创 2016-11-10 10:56:30 · 2378 阅读 · 0 评论 -
PHP面向对象_重载(overloading)
重载PHP所提供的”重载”(overloading)是指动态地”创建”类属性和方法。是通过魔术方法(magic methods)来实现的。当调用当前环境下未定义或不可见的类属性或方法时,重载方法会被调用。本节后面将使用 “不可访问成员(inaccessible members)”和”不可访问方法(inaccessible methods)”来称呼这些未定义或不可见的类属性或方法。所有的重载方法都必须原创 2016-10-14 18:55:15 · 1301 阅读 · 0 评论 -
PHP操作MySQL数据库(4)
新闻内容模块 新闻内容表的设计 字段名 解释 cat 分类 title 标题 author 作者 source 来源 keywords 网页关键字 description 描述 orderby 排序 content 内容 hits 点击率 addate原创 2016-10-08 00:26:22 · 4997 阅读 · 0 评论 -
PHP操作MySQL数据库(3)
管理员登录后台模块 实现管理员登录后台模块,主要包括: 1. 数据表的设计 2. 登录流程设计 3. 登录代码 4. 登录检查代码1. 管理员数据表——007_admin 字段名 解释 id 记录id,自动生成的 username 用户名 password 密码 name 管理员姓名 tel 电话 lastloginip 最后登录IP原创 2016-10-07 19:50:57 · 3347 阅读 · 0 评论 -
PHP操作MySQL数据库(1)
1. PHP连接MySQL服务器mysql_connect()基本语法描述:PHP连接MySQL服务器语法:resource $link = mysql_connect($hostname, $username, $password)参数: $hostname:是MySQL服务器的域名或IP地址,也可以加端口号(3306)。如:localhost:3306$username:是MySQL服原创 2016-10-05 13:25:32 · 3379 阅读 · 0 评论 -
PHP中new static() 和 new self() 的区别
PHP中static 和self的使用区别 使用 self:: 或者 CLASS 对当前类的静态引用,取决于定义当前方法所在的类:使用 static:: 不再被解析为定义当前方法所在的类,而是在实际运行时计算的。也可以称之为“静态绑定”,因为它可以用于(但不限于)静态方法的调用。静态绑定是PHP 5.3.0,增加的一个功能 用于在继承范围内引用静态调用的类简单通俗的来说, self就是写在哪个类原创 2016-10-18 22:45:02 · 1181 阅读 · 0 评论 -
ThinkPHP实例化Model(模型)的四种方法
1、创建一个基础模型:实例化一个系统自带的数据库操作类 Test.Model.class.php页面代码如下:class TestModel extends Model{} UserAction.class.php页面代码如下:function test(){ $test=M('test');//表示实例化的是自带的Model类,并且传入test值表示操作的是test表转载 2016-11-16 21:41:35 · 4676 阅读 · 0 评论 -
PHP中const与define的区别
在PHP中定义常量时,可用const与define这两种方式,那他们到底有什么区别呢? 1. const用于类成员变量定义,一旦定义且不能改变其值。define定义全局常量,在任何地方都可以访问。 2. define不能定义在类中,而const必须定义在类中,并且const定义的变量必须通过类名::变量名来进行访问。 3. const不能在条件语句中定义常量。 4. const采用一原创 2016-10-11 17:41:01 · 1924 阅读 · 0 评论 -
PHP调试时echo print() print_r() var_dump()的区别
echo() 输出一个或多个值(字符串),多个值之间用逗号分隔。echo是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用。 print() 函数print()打印一个值(它的参数),如果字符串成功显示则返回true,否则返回false。和echo一样,但速度比echo慢。 print_r() 可以把字符串和数字简单地打印出来,而数组则以原创 2016-10-18 15:28:13 · 1048 阅读 · 0 评论 -
面向对象中的单例模式(PHP)
单例模式的主要作用是保证在面向对象编程设计中,一个类只能有一个实例对象的存在。在很多操作中,比如建立目录、数据库连接都有可能会用到这种技术。和其他面向对象的编程语言相比,PHP中使用单例设计尤为重要。因为PHP是脚本语言,每次访问都是一次独立执行的过程,而在这个过程中一个类中有一个实例对象就足够了。例如自定义数据库的操作类,设计的原则就是在一个脚本中,只需要实例化一个数据库操作类的对象,并且只连接一原创 2017-08-27 20:17:23 · 617 阅读 · 0 评论 -
PHP操作MySQL数据库(2)
读取和删除新闻列表实现代码1. 先单独写一个PHP连接MySQL数据库的php文件(conn.php)//*******************PHP连接MySQL数据库********************<?php//声明PHP输出数据的字符集header("content-type:text/html;charset=utf-8");//0.数据库配置信息$db_host = "lo原创 2016-10-05 21:07:36 · 2423 阅读 · 0 评论 -
基于MVC模式的电商项目开发系列之3:后台功能
1.后台功能开发顺序及实施步骤后台各模块的顺序如下: 切实可行的具体方案 商品分类管理为例说明流程: - 确定目标 - 分析业务逻辑 - 编写代码实现 - 测试具体的实施方案如下: 总结:11163,一个模块,对应的一张表、一个模型,一个控制器,六个方法,三个视图。具体编写如下:一张表 一个模型一个控制器2.商品分类管理2.1.明确目标完成商品分类的增删改查操作 感性的认识原创 2016-11-23 21:01:19 · 2410 阅读 · 0 评论 -
基于MVC模式的电商项目开发系列之1:项目搭建
良好的项目结构 统一的命名规范 单一入口(所有的请求都是相对于index.php)1.项目结构说明每一个优秀的项目都有一个良好的项目结构。不是统一,合理即可。项目根目录结构如下: Application目录结构如下: Controllers目录结构如下: 对应的,views的目录结构如下: 注意,模型是前后台共用的,只需要一个即可,无需区分。Framework目录结构如下:原创 2016-11-21 22:16:09 · 1078 阅读 · 0 评论 -
基于MVC模式的电商项目开发系列之2:数据库设计
1.数据库设计要点分析Mysql数据类型 表间关系1.1 数据类型Mysql数据类型有哪些?数值类型,整数(tinyint、smallint、mediumint、int、bigint)、小数(float、decimal)字符串类型,char、varchar、text,enum,set日期时间类型,date,time,datetime,timestampMsyql没有布尔类型。如何表示原创 2016-11-23 15:33:16 · 1459 阅读 · 0 评论 -
图解MVC思想(模式)及简单案例演示
MVC框架思想原理图控制器(Controller) 是一个php文件,由浏览器直接请求(访问),他有2个核心工作: 1.(根据请求),决定需要什么数据,并去调用模型文件(类),获取该数据; 2.(根据请求),决定需要将数据显示在哪个视图文件中。模型(Model) 是一个php文件,不能直接请求,只能“被载入”而发挥作用,其核心工作为: (根据控制器的请求),去生成数据。视图(V原创 2016-10-20 22:05:56 · 2674 阅读 · 0 评论 -
ThinkPHP中的命名空间
命名空间概述(PHP 5 >= 5.3.0, PHP 7) 什么是命名空间?从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件 foo.txt 可以同时在目录/home/greg 和 /home/other 中存在,但在同一个目录中不能存在两个 foo.tx原创 2016-11-18 13:55:07 · 887 阅读 · 0 评论 -
使用ThinkPHP操作数据库
数据库的操作是由模型来管理的,首先先谈一谈模型相关。模型模型类的作用大多数情况是操作数据表的,如果按照系统的规范来命名模型类的话,大多数情况下是可以用模型的名字自动对应数据表的。 模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,然后加上模型层的名称(默认定义是Model),例如: 模型名 约定对应数据表(假设数据库的前缀定义是 think_) UserModel转载 2016-11-18 13:36:42 · 2880 阅读 · 1 评论 -
PHP面向对象_魔术常量、魔术方法和预定义常量总结
魔术常量(Magic constants)PHP中的常量大部分都是不变的,但是有8个常量会随着他们所在代码位置的变化而变化,这8个常量被称为魔术常量。__LINE__ 文件中的当前行号__FILE__ 文件的完整路径和文件名__DIR__ 文件所在的目录__FUNCTION__ 函数名称__CLASS__ 类的名称__原创 2016-10-18 20:24:33 · 1125 阅读 · 0 评论 -
PHP面向对象_ __tostring()和__invoke()
__tostring()魔术方法 将一个对象当做一个字符串来使用时,会自动调用该方法,并且在该方法中,可以返回一定的字符串,以表明该对象转换为字符串之后的结果。该魔术方法比较常用。 注意:如果没有定义该方法,则对象无法当做字符串来使用!类里面未定义__tostring()方法的例子:<?phpini_set('display_errors', 1);class A{ public原创 2016-10-18 20:13:21 · 2551 阅读 · 0 评论 -
PHP面向对象_模拟一般面向对象语言中的方法重载(overload)
在一般的面向对象设计语言(如C++,Java)中的方法重载就是定义相同的方法名,通过“参数的个数”不同或“参数的类型”不同,来访问我们的相同方法名的不同方法。但是PHP 中,方法是不能重载的,因为PHP 是弱类型的语言,所以在方法的参数中本身就可以接收不同类型的数据,又因为PHP 的方法可以接收不定个数的参数,所以通过传递不同个数的参数调用不相同方法名的不同方法也是不成立的。所以在PHP 里面没有传原创 2016-10-15 13:44:36 · 1227 阅读 · 0 评论 -
使用Smarty之变量信息的使用
三种变量信息的使用 1.assign变量信息使用 2.保留变量信息 3.配置变量信息1.assign变量信息的使用前面已经介绍过了。2.保留变量信息 对php中的超全局数组变量信息的使用 例如:$_GET、$_POST、$_SESSION、$_COOKIE、$_REQUEST\、$_SERVER、\$_ENV、\$GLOBALS、\$_FILES、常量信息 在模板原创 2016-10-25 15:45:30 · 986 阅读 · 0 评论 -
PHP面向对象_子类扩展父类(子类重新载入父类)
在PHP中,会遇到这样的情况,子类继承父类,但是又需要对父类的属性和方法进行一定的扩展,这时子类可以对属性和方法进行重写,覆盖与父类同名的属性和方法,但是如果父类的方法中的内容比较多,比如上百成千行代码,这时只需使用”父类类名::方法” 或“parent::方法“来调用父类中被覆盖的方法,有就是重新载入父类,然后再加上需要扩展的语句。 方法的重写<?php class Person{原创 2016-10-14 14:32:50 · 1954 阅读 · 0 评论 -
简单使用Smarty
首先把下载好的Smarty包下的libs文件夹拷贝到工作目录下,我的工作目录是smarty。在该工作目录下新建一个模板文件夹: 打开libs下的Smarty.class.php文件,查找setTemplateDir,就可以看到 $this->setTemplateDir('.' . DS . 'templates' . DS) ->setCompileDir('.'原创 2016-10-25 13:32:02 · 438 阅读 · 0 评论 -
PHP对象类型在内存中的分配
对像类型在PHP 里面和整型、浮点型、字符串型一样,也是一种数据类型,都是存储不同类型数据用的, 在运行的时候都要加载到内存中去用,那么对象在内存里面是怎么体现的呢?内存从逻辑上说大体上分为4 段:栈空间段、堆空间段、代码段、初始化静态段,程序里面不同的声明放在不同的内存段里面,程序中不同类型数据的声明将会被存放在不同的内存段里。每段内存的特点如下。 1.栈空间段(栈内存) 栈(s原创 2016-10-13 16:21:59 · 1880 阅读 · 0 评论 -
PHP中全局变量和局部变量详解
直接用例子说话: 例一:function fun1(){ $a=100; echo $a;}function fun2(){ $b=200; echo $b;}fun1(); //输出的结果为100fun2(); //输出的结果为200例二:function fun1(){ $a=100;}function fun2(){ $b=2转载 2016-10-24 13:30:21 · 1849 阅读 · 0 评论 -
解析在PHP中使用全局变量的几种方法
即使开发一个新的大型PHP程序,你也不可避免的要使用到全局数据,因为有些数据是需要用到你的代码的不同部分的。一些常见的全局数据有:程序设定类、数据库连接类、用户资料等等。有很多方法能够使这些数据成为全局数据,其中最常用的就是使用“global”关键字申明,稍后在文章中我们会具体的讲解到。 使用“global”关键字来申明全局数据的唯一缺点就是它事实上是一种非常差的编程方式,而且经常在其后导致程转载 2016-10-24 13:09:31 · 1482 阅读 · 0 评论 -
PHP中的写时复制(Copy On Write)
问题引入 首先来看看PHP中的赋值与引用问题<?php$a = 10;//将常量值赋给变量,会为a分配内存空间 $b = $a;//变量赋值给变量,是不是copy了一份副本,b也分配了内存空间呢? $c = &$a;//引用是不会为c分配空间的,c和a是共用一份空间的。?> 对于中间的那个问题,你的答案是什么呢?在今天之前,我的答案是会为b分配内存空间。因为我是这么理解的: &赋值原创 2016-10-12 00:06:20 · 2762 阅读 · 0 评论 -
PHP面向对象_构造方法和析构方法
构造方法和析构方法是对象中的两个特殊方法,它们都与对象的生命周期有关。构造方法是对象创建完成后第一个被对象自动调用的方法,这是我们在对象中使用构造方法的原因。而析构方法是对象在销毁之前最后一个被对象自动调用的方法,这也是我们在对象中使用析构方法的原因。所以通常使用构造方法完成一些对象的初始化工作,使用析构方法完成一些对象在销毁之前的清理工作。1.构造方法 在每个声明的类中都有一个呗称为构造方法的特原创 2016-10-16 14:25:42 · 2179 阅读 · 0 评论 -
浅析PHP中静态方法与非静态方法的用法区别
在php中,static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为“类属性”或“类方法”。 如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号“::”调用。 static关键字可以用来修饰变量、方法。不经过实例化,就可以直接访问类中static的属性和static的方法。 static 的属性和方法,只能访问stati转载 2016-10-09 14:14:08 · 1755 阅读 · 0 评论 -
PHP面向对象_对象串行化serialize(),__sleep(),__wakeup()
有时候需要把一个对象在网络上传输,为了方便传输,可以把整个对象转化为二进制串,等到达另一端时,再还原为原来的对象,这个过程称之为串行化(也叫序列化)serialization, 就像我们现在想把一辆汽车通过轮船运到美国去,因为汽车的体积比较大,我们可以把汽车拆开成小的部件,然后我们把这些部件通过轮般运到美国去,到了美国再把这些部件组装回汽车。 有两种情况我们必须把对象串行化,第一种情况就是把一原创 2016-10-16 21:24:23 · 1704 阅读 · 0 评论 -
PHP中引入文件的四种方式及区别
综述和基本语法 有4个文件加载语句:include,require,include_once,require_once。 - require函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。 - include函数一般放在流程控制的处理部分中。PHP程序网页在读到 include的文件时,才将它读进来原创 2016-10-04 23:15:37 · 30383 阅读 · 0 评论 -
PHP面向对象_对象克隆clone和魔术方法__clone()
1.对象克隆 clone PHP4面向对象功能一个很大的缺点,是将对象视为另一种数据类型,这使得很多常见的OOP方法无法使用,如设计模式。这些方法依赖于将对象作为引用传递给其他类方法,而不是作为值传递,而按值传递却是PHP的默认做法。幸好,PHP5解决了这个问题,现在所有对象在默认情况下都被视为引用。但是,由于所有对象都被视为引用而不是值,所以现在复制对象更为困难。如果尝试复制一个引用的对象,这只原创 2016-10-16 16:54:19 · 2094 阅读 · 0 评论 -
PHP中常用的三种设计模式
PHP中常用的三种设计模式:单例模式、工厂模式、观察者模式1.单例模式 为何要使用PHP单例模式? 多数人都是从单例模式的字面上的意思来理解它的用途, 认为这是对系统资源的节省, 可以避免重复实例化, 是一种”计划生育”. 而PHP每次执行完页面都是会从内存中清理掉所有的资源. 因而PHP中的单例实际每次运行都是需要重新实例化的, 这样就失去了单例重复实例化的意义了. 单单从这个方面来转载 2016-10-13 20:07:35 · 1416 阅读 · 0 评论 -
PHP面向对象_类型约束
什么是类型约束 就是要求某个变量只能使用(接受,存储)某种指定的数据类型;php属于”弱类型语言“,通常不支持类型约束;相应的,强类型语言,类型约束却是其“基本特征”。php中,只支持局部的部分类型约束 php中,只支持在函数(或方法)的形参上,设定类型的约束目标,形式如下:function 方法名( [要求使用的类型] \$p1, [要求使用的类型] \$p2, ......){ //原创 2016-10-18 14:30:19 · 1147 阅读 · 0 评论 -
ThinkPHP框架介绍及应用
一.ThinkPHP介绍1.1.什么是框架 PHP框架是许多代码的集合,这些代码是程序结构的代码(并不是业务代码),代码中有许多函数、类、功能类包,框架的代码按照一定标准组成了一个有机的功能体,这个功能体中有许多设计模式如MVC、单例、AR等。1.2.不使用框架开发中遇到的问题代码编写没有统一规范程序项目生命周期非常短,不延续一个小地方的修改会牵扯到全局变化,牵一发动全身不能很好地满足客户原创 2016-11-07 11:15:06 · 7064 阅读 · 0 评论 -
PHP面向对象_内置标准类,普通数据类型转为对象类型
PHP中,有很多“现成的类”,其中有一个被称为“内置标准类”。这个类“内部”可以认为什么也没有。class stdclass{ }<?php$obj1 = new stdclass();var_dump($obj1);class A{}$obj2 = new A();var_dump($obj2);?>运行结果:object(stdClass)[1]object(A)[2]可以看到和普通原创 2016-10-18 13:25:33 · 1307 阅读 · 0 评论