正则表达式

正则表达式英文称Regex,即Regular Expression。正则表达式可以有助于完成一些复杂的模式匹配,在各种程序中都有应用,PHP支持两种风格的正则表达式的语法:POSIX和Perl。正则表达式通过一些特殊字符作为通配符可以代替除换行符(\n)外的字符来进行匹配,如.at就可匹配cat, sat, mat等字符(”.”在正则表达式中用于匹配任意单个字符),可以通过限定范围来进行匹配,如果要匹配小写字母的话,也可以使用[a-z]at,若要添加大小字母,则可使用[a-zA-Z]at。

也可以限定更小的字母集合,如[aeiou],如果要排除某一字符集合,则可使用类似[^a-z]的正则表达式。

POSIX风格的正则表达式预置了一些字符类

[:digit:]      数字0到9
[:alnum:]      数字及字母0到9或A到Z或a到z
[:alpha:]      字母A到Z或a到z
[:blank:]      制表符或空格
[:xdigit:]     十六进制数字
[:punct:]      标点符号 . , " ' ? ! ; :
[:print:]      所有可打印的字符
[:space:]      空白字符
[:graph:]      除空格外所有可打印的字符
[:upper:]      字符A到Z
[:lower:]      字符a到z
[:cntrl:]      控制符

有关重复

使用”*”表示字符可出现0次或更多次,而”+”表示字符可出现1次或更多次(至少出现一次)(还有一个问号字符?,表示出现0次或1次)。如(very )*large可以匹配large, very large, very very large等等。您也可以指定字符出现的次数及范围,如(very){1, 3},表示 very可重复1到3次,而(very){4}则表示very重复4次。

定位到字符串的开始或结尾

分别使用两个符号:^和$,前则表示出现在开始,后者表示结尾,如a+$表示结尾出现一个或多个a, ^.{2}表示以任意两个字符开始。

分支

可使用”|”字符进行多选择匹配,如com|edu|net则表示匹配3者中的一个。

特殊字符的匹配

正则表达式中要匹配一些特殊字符时需要在特殊字符前加一个反斜杠(\),比如要匹配\\,则需使用\\\\,而匹配$则需要使用\$。主要的特殊字符有\^$.|()*+{}?这几个。

 

PHP与MySQL学习笔记

PHP学习笔记

http默认端口80,ftp默认端口21,telnet默认端口23,https默认端口443

几种常见的操作系统、Web服务器、数据库、后台语言组合:
Linux+Apache+MySQL+PHP=LAMP
Unix+Tomcat+Oracle+JSP=J2EE
Windows+IIS+SQL Server+ASP=ASP.net

重复代码调用

PHP从最初的Personal Home Page Tools演化成今日对Hypertext Preprocessor的缩写,主要应用于web领域。

使用require()和include()这两个函数可以调用已完成并会重复调用的代码,这两个函数的区别在于在函数失败后require()给出一个致命的错误(fatal error),而include()仅给出一个警告(warnig)。如果是页眉和页脚,可以分别使用auto_prepend_file和auto_append_file。

函数

虽然PHP对于变量名是区分大小的,如$VAR不同于$var,而函数名实际上是不区分大小的,如调用Function_Name()和调用function_name()将返回同样的结果。

PHP中内置了很多函数,如phpinfo(),fopen(),随着版本的升级内置函数也还发生变化。用户也可以像声明变量一样创建自己的函数。声明一个函数,使用的基本格式是:
function function_name(){
}

当然函数名(function_name)的使用也要遵循一些要求:不能重复使用已有函数名称,只能使用数字、字母和下划线且不能以数字开头。

使用return可终止函数的执行,通常用于进行一些条件的判断如isset(),检测不到变量则直接终止函数。也可以使用return语句来与调用它的代码进行交互,如return false, return $a。

面向对象

创建类的格式很简单,通过下面的格式进行声明即可:

class class_name{

}

类中使用的变量、函数等可通过修饰符public,private和protected进指定作用域,其中private在类外部不可见,且不能被继承,而protected在类外部不可见,但是可以被继承。类之间可以继承,如B继承了A的话,则可以使用class B extends A(PHP不支持多重继承,即一个类不可以继承两个类)。

构造函数和析构函数的格式分别为__construct()和__destruct(),类的实例化可以通过$a= new class_name()来实现。使用父类的函数时可使用parent::function_name()来进行调用,若要禁止调用和重载,可使用final修饰符。

MySQL学习笔记

MySQL语句不区分大小写,但数据库和表名是区分大小写的。

MySQL登录的命令

登录MySQL可在命令行输入

mysql -h hostname -u username -p其中-h后对应的是主机名,通常本地连接时可直接忽略该项,-u后对应的为用户名,如root,-p对应的自然是密码,执行该语句后会要求输入对应用户的密码。

数据库的四个基本功能CRUD

即Create,Read,Update,Delete

创建(Create)的基本语法
INSERT INTO table(column1, column2, column3)
VALUES(val1,val2,val3);
读取(Read)的基本语法
SELECT * FROM table
WHERE column1=’some-text’
ORDER BY column1, column2 ASC;
更新(Update)的基本语法
UPDATE table
SET column1=’some_text’
WHERE id =1;
删除(Delete)的基本语法
DELETE FROM table
WHERE id=1;

而创建数据库则应使用如下命令:

create database db_name;

使用命令创建数据库及表格

CREATE DATABASE database_name;
USE database_name;

下面的命令创建带有四列指定名称(id, menu_name, position, visible)和数据类型的数据库表格
CREATE TABLE table_name(
column1 int(11) NOT NULL auto_increment,
column2 varchar(30) NOT NULL,
column3 int(3) NOT NULL,
column4 tinyint(1) NOT NULL,
PRIMARY KEY(column1)
);

cd命令的用法

在执行命令时经常需要转换目录,这时候就需要用到cd命令(change directory),通常的几种用法有:

cd \ 返加到根目录

cd ..返回上一级目录,对应的返回上上一级目录就是cd ..\..,向上返回3级目录就是cd ..\..\..依此类推

cd 加上相对路径,进入对应目录

如要去其它盘,如在本地windows系统下切换到f盘,则无需使用cd,直接输入f:回车即可

php和mysql web开发(原书第4版)

电子商务的知识面太广,Alan最近都开始学习PHP和MySQL了。从上海图书馆借了一本书名为php和mysql web开发(原书第4版),又是一部“圣经”。照葫芦画瓢也写了两个文件,才发现写程序还真不是件容易的事。PHP貌似已经是程序中非常简单的了,概念还是爆多:运算符、逻辑操作符、变量、全局变量、数组、类云云,各种逻辑算法光弄明白就够绕得了,还要注意优先级。

万事开头难,还是得本着“蜗牛精神”慢慢往前挪。全书共包含四篇34章以及附录,本周Alan仅仅简单的学习了第一章,整体感觉这本书还是不错的,因为它以实例来讲概念,这样就不会太过枯燥。要了解php常用的函数等内容,可以访问php.net。Alan按步就班的学习完了第一章,收获还是颇丰的。从最基础的php标签<?php ?>、输出函数echo开始,然后接触到注释(comment),主要有单行注释符//和多行注释符/* */。

然后接触到函数date()以及连接操作符.

还有变量的组成,通常是以$开始,如$tireqty,还有所谓中等风格如$_POST[‘tireqty’],这在处理表单对变量赋值时会用到,当然赋值符号是=,还有+-*/%, +=等操作符,由于=为赋值操作符,在比较时相应的就需要用==来表示等于。操作符还拥有各自优先级,此外,又讲到了变量类型,如整型(integer)、浮点型(float)、字符串型(string)、布尔型(boolean)等。PHP属于弱类型语言,您可以在使用中进行类型转换,如(float)$a; 也可以使用gettype()函数获知变量类型,settype()设定变量的类型,is_integer()等函数也可用来检测。

变量以外还有常量,通常是以大写字母来表示,可通过define函数来赋值。

然后就是if, elseif, switch语, while, foreach, do…while循环

总的来学,只能算是囫囵吞枣,苦劳还是有的。这不,要抄了不少代码呢:

网上恰巧找到了这本书的电子版,就拿出来与大家分享一下

pdf下载地址:php和mysql web开发(原书第4版)
php和mysql web开发(原书第4版)