正则表达式复习与smarty安装

 1、          正则表达式

      如果想匹配如 .,{,$,等特殊字符(在正则表达式中有特殊意义的字符),就必须在该字符前加反斜杠(\),(C中管它\叫‘转义符’)如果想表示这个反斜杠(\),就在他前面再加个反斜杠,即改成(\\)。
      必须注意的是在PHP中要尽量把正则表达式放在单引号(')中。如果把正则表达式放在双引号里则会引起一些不必要的麻烦。在PHP的正则表达式中也要 使用反斜杠(\)来‘掩盖’一些特殊的字符--像反斜杠(\)自身。在表达式中如想匹配一个反斜杠(\),也必须使用两个反斜杠(\)来表示它是原义的反 斜杠(\),而不是转义符。
      类似的原因,把反斜杠(\)放在双引号中时也要使用两个反斜杠(\)来转义。令人困惑的是,根据以上规则,在PHP中的正则表达式里要表示一个反斜杠(\)就要四个反斜杠(\)。PHP解析器会将四个反斜杠(\)解析成两个。之后正则解析又将之解析成一个。
美圆符$在PHP字串和正则表达式中也是个有特殊意义的字符。如需匹配$的原义字符,就必须写成"\\\$".因为它在双引号里,PHP会将之解析为\$,然后正则解析就会将它匹配为美圆符(而不是表示‘字符串的结束位置’)。

     另外需要注意的是,PHP中的正则表达式必须以'/'开始和结束,如:"/abc/",而不能写作"abc"。


    单引号表示的正则表达式反向引用用单个反斜杠加数字,例如\1,\2
    双引号表示的正则表达式反向引用用两个反斜杠加数字,例如\\1,\\2
    举例来说,我要写一个匹配标签的src属性的正则,可以写成

PHP code
'/\ ]*?src=(\'|\")(.*?\.(jpg|jpeg|gif|png))\1/im'

或者

PHP code
   
     
     
     
     
"/\]*?src=(\'|\")(.*?\.(jpg|jpeg|gif|png))\\1/im"

 总体:使用双引号+转义,PHP中引擎和正则表达式的引擎是分离的,PHP先解析,然后正则在解析

 自定义模板----了解模板的工作原理

Templates

Templates_c

 正则表达式中使用引号的区别

 Php解释引擎和正则表达式的解释引擎是分离的

 \s---匹配任何空白;

 $pattern =“//i”;

  echo  “\\\s”;  ---经php解释后---\\s--经正则表达式引擎解释后\s

  echo  ‘\s’;    ---经php解释后---\s--经正则表达式引擎解释后\s

注意:单引号和双引号

   1)‘abc’ “abc”

   2)‘$a  \b’ “$a \\\b”

 

P546-547  表16-1

2、安装smarty

http://www.smarty.net 下载

    smarty压缩包Smarty-3.1.4.zip

解压到指定的目录Smarty-3.1.4

剪切libs文件夹:smarty.class.php

3、了解smarty的核心类文件

   Smarty:效率高、速度快---实时性

默认分隔符{}

如果html中嵌入了css {}有可能产生冲突

1)          重新编辑分隔符:

<{  }>、     

    2)css文件js文件单独保存到另外的文件夹

配置信息不要直接修改到smarty原文件,常用方法

单独保存init.inc.php文件

 4、smarty的注意事项 

   1)html(tpl)模板文件中路径问题

在模板文件中引入外部文件时使用的相对路径 是相对于

 b.php文件来说的。

模板只负责解释占位符中的变量{}  <{}>

      通过引入图片、css文件、js文件测试

2)html(tpl)模板文件的位置

全部都是相对于

$tpl->template_dir    = './tpl';

3)          php文件转移到不同目录下

唯一使用绝对路径

echo __FILE__;

echo $_SERVER[‘script_filename’];

 

你可能感兴趣的:(正则表达式,php,引擎,html,css,server)