preg_match正则表达式的使用

一,让我们看看两个特别的字符:‘^’和‘$’他们是分别用来匹配字符串的开始和结束,以下分别举例说明

“^The”: 匹配以 “The”开头的字符串;

“of despair$”: 匹配以 “of despair” 结尾的字符串;

“^abc$”: 匹配以abc开头和以abc结尾的字符串,实际上是只有abc与之匹配;

“notice”: 匹配包含notice的字符串;

你可以看见如果你没有用我们提到的两个字符(最后一个例子),就是说模式(正则表达式)可以出现在

被检验字符串的任何地方,你没有把他锁定到两边。

第二,这里还有几个字符‘*’,‘+’,和‘?’, 他们用来表示一个字符可以出现的次数或者顺序. 他们分别表

示:”zero or more”, “one or more”, and “zero or one.” 这里是一些例子:

“ab*”: 匹配字符串a和0个或者更多b组成的字符串(“a”, “ab”, “abbb”, etc.);

“ab+”: 和上面一样,但最少有一个b (“ab”, “abbb”, etc.);

“ab?”:匹配0个或者一个b;

“a?b+$”: 匹配以一个或者0个a再加上一个以上的b结尾的字符串.

第三,在花括号中的逗号,表示‘到’,即前后跟数字, “{n,m}”表示“n到m”。

第四,你也可以在大括号{n}里面限制字符出现的个数,比如

“ab{2}”: 匹配一个a后面跟两个b(一个也不能少)(“abb”);

“ab{2,}”: 最少更两个b(“abb”, “abbbb”, etc.);

“ab{2,5}”: 2-5个b(“abbb”, “abbbb”, or “abbbbb”).

你还要注意到你必须总是指定 (i.e, “{0,2}”, not “{,2}”).同样,你必须注意到, ‘*’, ‘+’, 和’?’ 分别和以下三

个范围标注是一样的,”{0,}”, “{1,}”, 和 “{0,1}”。

第五,现在把一定数量的字符放到小括号(x)里,比如:

“a(bc)*”: 匹配 a 后面跟0个或者一个”bc”;

“a(bc){1,5}”: 一个到5个 “bc.”

第六,还有一个字符‘|’相当于OR 操作:

“hi│hello”: 匹配含有”hi” 或者 “hello” 的 字符串;

“(b│cd)ef”: 匹配含有 “bef” 或者 “cdef”的字符串;

“(a│b)*c”: 匹配含有这样 – 多个(包括0个)a或b,后面跟一个c的字符串 的字符串;

!!!!!!!祖国万岁!!!!!!!


祖国万岁

祖国万岁 祖国万岁

祖国万岁 祖国万岁 祖国万岁

祖国万岁 祖国万岁 祖国万岁 祖国万岁

祖国万岁 祖国万岁 祖国万岁 祖国万岁 祖国万岁

祖国万岁 祖国万岁 祖国万岁 祖国万岁 祖国万岁 祖国万岁

symfony 学习


安装 symfony

首先要安装 apache 和 php,

最好就是用现成的工具,我试了wamp和xampp,

因为以后要用pear安装symfony但是在wamp中没有现成的pear,所以我选择了xampp,

注意: 最新版的xampp是用的5.3版本的php所以有一些函数不能用了,比如split,但是在symfony中使用了,会返回错误。

下载 symfony  (http://www.symfony-project.org/installation/1_2).

以下是转载 symfony中文官方网站的。

用xampp的pear是在xampp/php目录下。

XAMPP 上的 symfony 安装

XAMPP 上的 symfony 安装

symfony 主体安装

C:\Program Files\xampp\php>pear channel-discover pear.symfony-project.com
Adding Channel "pear.symfony-project.com" succeeded
Discovery of channel "pear.symfony-project.com" succeeded

C:\Program Files\xampp\php>pear install symfony/symfony-beta
downloading symfony-1.0.0beta2.tgz ...
Starting to download symfony-1.0.0beta2.tgz (1,632,555 bytes)
...............................................done: 1,632,555 bytes
install ok: channel://pear.symfony-project.com/symfony-1.0.0beta2

安装 symfony

升级 PEAR

C:\Program Files\xampp\php>pear channel-update pear.php.net
Retrieving channel.xml from remote server
Update of Channel "pear.php.net" succeeded

更新 PEAR 地址

C:\Program Files\xampp\php>pear upgrade pear
Did not download optional dependencies: pear/XML_RPC, use --alldeps to download
automatically
downloading PEAR-1.4.11.tgz ...
Starting to download PEAR-1.4.11.tgz (283,272 bytes)
..........................................................done: 283,272 bytes
upgrade ok: channel://pear.php.net/PEAR-1.4.11
PEAR: Optional feature webinstaller available (PEAR's web-based installer)
PEAR: Optional feature gtkinstaller available (PEAR's PHP-GTK-based installer)
PEAR: Optional feature gtk2installer available (PEAR's PHP-GTK2-based installer)

To install use "pear install PEAR#featurename"

升级 PEAR

Phing 安装

symfony 的运行依赖于如下几个软件包:

  • pake: 自动安装
  • creole: 自动安装(用于数据库访问)
  • propel: 自动安装(用于对象关系匹配)
  • phing: 需要另外安装

直接安装 Phing 会遇到依赖项故障导致安装失败的情形,所以从 Phing 的依赖项安装开始。

依赖软件 功用 网址 XAMPP集成环境
PHP 5.0.1+ Execution http://www.php.net XAMPP1.5.2 中已安装
PHPUnit2 2.2.0+ 额外功能 http://www.phpunit.de XAMPP 中已安装PHPUnit2 2.3.5
Xdebug 2.0.0b2+ 额外功能 http://www.xdebug.org XAMPP1.5.2 中已安装
PhpDocumentor 1.3.0RC3+ 额外功能 http://www.phpdoc.org XAMPP1.5.2 中已安装PhpDocumentor 1.2.3 需要升级

1. 安装 VersionControl_SVN-0.3.0alpha1

C:\Program Files\xampp\php>pear install -o pear.php.net/VersionControl_SVN-0.3.0
alpha1
downloading VersionControl_SVN-0.3.0alpha1.tgz ...
Starting to download VersionControl_SVN-0.3.0alpha1.tgz (33,829 bytes)
.........done: 33,829 bytes
install ok: channel://pear.php.net/VersionControl_SVN-0.3.0alpha1

安装 VersionControl_SVN-0.3.0alpha1

2. 升级至 PhpDocumentor-1.3.0RC6.tgz

C:\Program Files\xampp\php>pear upgrade PhpDocumentor-beta
downloading PhpDocumentor-1.3.0RC6.tgz ...
Starting to download PhpDocumentor-1.3.0RC6.tgz (2,451,179 bytes)
................................................................................
................................................................................
..done: 2,451,179 bytes
upgrade ok: channel://pear.php.net/PhpDocumentor-1.3.0RC6

升级至 PhpDocumentor-1.3.0RC6.tgz

3. 安装 Phing

C:\Program Files\xampp\php>pear install http://phing.info/pear/phing-current.tgz

downloading phing-current.tgz ...
Starting to download phing-current.tgz (361,527 bytes)
.........................................................................done: 3
61,527 bytes
Did not download dependencies: pecl/Xdebug, use --alldeps or --onlyreqdeps to do
wnload automatically
pear/phing can optionally use package "pear/Xdebug" (version >= 2.0.0beta2)
install ok: channel://pear.php.net/phing-2.1.1

安装 Phing

必要的设置

Php 设置

php.ini 设置

在 XAMPP 中可以找到多个 php.ini 文件,起作用的是在 apache\bin 目录下的 php.ini。 symfony 要求 register_globals 为 Off(symfony 1.0 起不再严格要求),这恰恰是 php 安装的默认状态,所以不必调整。

Windows 环境变量设置

在资源管理器中,鼠标右键单击“我的电脑”,选择“属性”命令,在系统属性对话框“高级”选项卡上点击“环境变量”,双击“系统变量”框中“Path”项并在其结尾添加php路径:

C:\Program Files\xampp\php

php路径

Apache 设置

magic_quotes_gpc = Off

虚拟主机搭建

在 XAMPP 控制台(Control Panel)上点击(浏览),进入到 apache\conf\extra 目录中,打开 httpd-vhosts.conf 文件

ttpd-vhosts.conf 文件结尾添加

<Directory "C:\Program Files\xampp\php\pear\data\symfony\web\sf">
 AllowOverride All
 Allow from All
</Directory>
<VirtualHost *:80>
  ServerName askeet
  DocumentRoot "D:\WebDev\askeet\web"
  DirectoryIndex index.php
  Alias /sf "C:\Program Files\xampp\php\pear\data\symfony\web\sf"

  <Directory "D:\WebDev\askeet\web">
   AllowOverride All
   Allow from All
  </Directory>
</VirtualHost>

打开 C:\WINDOWS\system32\drivers\etc 目录下的 hosts 文件中添加

127.0.0.1       askeet

注意. 我在安装的时候遇到了一个问题,找了半天就是一个symfony的文件里的一个路径不对,所以要是遇到问题,要仔细看返回的错误信息。