php 应用中的点滴

 

本文记录的是在 php 程序过程中的一些点滴

(原文链接 http://ddbiz.com/?p=175)

  • php 多行匹配

 

适用版本 php 5.3.2

preg_match('/<prefix>(.*?)<//prefix>/is', $content)

 

 

根据文档,正则修正符的使用说明:

 

/i

不区分大小写

 

/s 

如果设定了此修正符,模式中的圆点元字符(.匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。这和 Perl 的 /s 修正符是等效的。排除字符类例如 [^a] 总是匹配换行符的,无论是否设定了此修正符

上面的例子就是用到此选项

 

/U 

 

本修正符反转了匹配数量的值使其不是默认的重复,而变成在后面跟上“?”才变得重复。这和 Perl 不兼容。也可以通过在模式之中设定 (?U) 修正符或者在数量符之后跟一个问号(如 .*?)来启用此选项。

 

/m

默认情况下,PCRE 将目标字符串作为单一的一“行”字符所组成的(甚至其中包含有换行符也是如此)。“行起始”元字符(^)仅仅匹配字符串的起始,“行结束”元字符($)仅仅匹配字符串的结束,或者最后一个字符是换行符时其前面(除非设定了 D 修正符)。这和 Perl 是一样的。

当设定了此修正符,“行起始”和“行结束”除了匹配整个字符串开头和结束外,还分别匹配其中的换行符的之后和之前。这和 Perl 的 /m 修正符是等效的。如果目标字符串中没有“/n”字符或者模式中没有 ^ 或 $,则设定此修正符没有任何效果。 

 

  • php pdo mysql 的参数设定

pdo_mysql 中,链接mysql 的 pdostatment 使用的参数形式为 :param, 如:

 

$sth = $dbh->prepare('select id from tuser where name=:name');

$sth->execute(array(':name' => $name));

 

如果使用 ?param 的话,execute 会报错,但是没有进一步的错误信息, 如 :

 

$sth = $dbh->prepare('select id from tuser where name=?name');

$sth->execute(array('?name' => $name)); //返回 false

同时 $dbh->errorInfo() 的内容为:
Array
(
    [0] => 00000
    [1] => 
    [2] => 
)

(原文链接 http://ddbiz.com/?p=175)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值