php正则表达式之preg_match()用法
代码如下 | 复制代码 |
<?php // 模式定界符后面的 "i" 表示不区分大小写字母的搜索 if (preg_match ("/php/i", "PHP is the web scripting language of choice.")) { print "A match was found."; } else { print "A match was not found."; } ?> |
取得当前时间
代码如下 | 复制代码 |
<?php //需要匹配的字符串。date函数返回当前时间。 "现在时刻:2012-04-20 07:31 am" $content = "现在时刻:".date("Y-m-d h:i a"); //匹配日期和时间. if (preg_match ("/d{4}-d{2}-d{2} d{2}:d{2} [ap]m/", $content, $m)) { echo "匹配的时间是:" .$m[0]. "n"; //"2012-04-20 07:31 am" } //分别取得日期和时间 if (preg_match ("/([d-]{10}) ([d:]{5} [ap]m)/", $content, $m)) { echo "当前日期是:" .$m[1]. "n"; //"2012-04-20" echo "当前时间是:" .$m[2]. "n"; //"07:31 am" } ?> |
这个例子将验证出此 Email 地址为正确格式。现在让我们来看看这段正则表达式所代表的各种规则。
获取Google首页title
比如说要获取google首页的title内容,代码如下:
代码如下 | 复制代码 |
<?php |
从网址获取域名
代码如下 | 复制代码 |
<?php preg_match("/^(http://)?([^/]+)/i", "http://www.111cn.net/index.html", $matches); $host = $matches[2]; // 从主机名中取得后面两段 preg_match("/[^./]+.[^./]+$/", $host, $matches); echo "domain name is: {$matches[0]}n"; ?> |
preg_match($pattern,$string,$matcher)其中$pattern对应的就是/^(http://)?([^/]+)/i,$string 是http://www.php.net/index.html,$match是匹配到的结果。
如果提供了 matches,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。
$matches[0] 将包含与整个模式匹配的文本。咱们用pring_r打印出来第一个$matches:
代码如下 | 复制代码 |
Array ( |
$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本。在正则中,()代表模式:匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。就是说数组中下标为1的值就是正则中/^(http://)?([^/]+)/i第一个()里的值!数组下标2的值以此类推。
1、设置Cookie
PHP用SetCookie函数来设置Cookie。必须注意的一点是:Cookie是HTTP协议头的一部分,用于浏览器和服务器之间传递信息,所以必须在任何属于HTML文件本身的内容输出之前调用Cookie函数。
SetCookie函数定义了一个Cookie,并且把它附加在HTTP头的后面,SetCookie函数的原型如下:
int SetCookie(string name, string value, int expire, string path, string domain, int secure);
除 了name之外所有的参数都是可选的。value,path,domain三个参数可以用空字符串代换,表示没有设置;expire 和 secure两个参数是数值型的,可以用0表示。expire参数是一个标准的Unix时间标记,可以用time()或mktime()函数取得,以秒为 单位。secure参数表示这个Cookie是否通过加密的HTTPS协议在网络上传输。
当前设置的Cookie不是立即生效的,而是要等到下一个页面时才能看到.这是由于在设置的这个页面里Cookie由服务器传递给客户浏览器,在下一个页面浏览器才能把Cookie从客户的机器里取出传回服务器的原因。
在同一个页面设置Cookie,实际是从后往前,所以如果要在插入一个新的Cookie之前删掉一个,你必须先写插入的语句,再写删除的语句,否则可能会出现不希望的结果。
来看几个例子:
如何创建 cookie?
setcookie() 函数用于设置 cookie。
注释:setcookie() 函数必须位于 <html> 标签之前。
语法
setcookie(name, value, expire, path, domain);
简单的:
代码如下 | 复制代码 |
SetCookie(“MyCookie”, “Value of MyCookie”); 带失效时间的: SetCookie(“WithExpire”, “Expire in 1 hour”, time()+3600);//3600秒=1小时 什么都有的: SetCookie(“FullCookie”, “Full cookie value”, time()+3600, “/forum”, “.phpuser.com”, 1); |
这里还有一点要说明 的,比如你的站点有几个不同的目录,那么如果只用不带路径的Cookie的话,在一个目录下的页面里设的Cookie在另一 个目录的页面里是看不到的,也就是说,Cookie是面向路径的。实际上,即使没有指定路径,WEB服务器会自动传递当前的路径给浏览器的,指定路径会强 制服务器使用设置的路径。解决这个问题的办法是在调用SetCookie时加上路径和域名,域名的格式可以是“www.phpuser.com”,也可是 “.phpuser.com”。
SetCookie 函数里表示value的部分,在传递时会自动被encode,也就是说,如果 value的值是“test value”在传递时就变成了“test%20value”,跟URL的方法一样。当然,对于程序来说这是透明的,因为在PHP接收Cookie的值时会 自动将其decode。
如果要设置同名的多个Cookie,要用数组,方法是:
代码如下 | 复制代码 |
SetCookie(“CookieArray[]“, “Value 1″); SetCookie(“CookieArray[]“, “Value 2″); 或 SetCookie(“CookieArray[0]“, “Value 1″); SetCookie(“CookieArray[1]“, “Value 2″); |
2、接收和处理Cookie
PHP对Cookie的接收和处理的支持非常好,是完全自动的,跟FORM变量的原则一样,特别简单。
比如设置一个名为 MyCookier的Cookie,PHP会自动从WEB服务器接收的HTTP头里把它分析出来,并形成一个与普通变量一样的变量,名为$ myCookie,这个变量的值就是Cookie的值。数组同样适用。另外一个办法是引用PHP的全局变量$HTTP_COOKIE_VARS数组。
分别举例如下:(假设这些都在以前的页面里设置过了,并且仍然有效)
代码如下 | 复制代码 |
echo $MyCookie; echo $CookieArray[0]; echo count($CookieArray |
如何取回 Cookie 的值?
PHP 的 $_COOKIE 变量用于取回 cookie 的值。
在下面的例子中,我们取回了名为 "user" 的 cookie 的值,并把它显示在了页面上:
代码如下 | 复制代码 |
<?php // A way to view all cookies |
在下面的例子中,我们使用 isset() 函数来确认是否已设置了 cookie:
代码如下 | 复制代码 |
<html> <?php </body> |
如何删除 cookie?
当删除 cookie 时,您应当使过期日期变更为过去的时间点。
删除的例子:
代码如下 | 复制代码 |
<?php |
例子
php cookie来设置用户登陆的时间与过期时间代码哦
代码如下 | 复制代码 |
function loginCookie($uid,$name,$group,$ip,$time) $secure = Xxtea::encrypt($uid."|".$name."|".$group."|".$ip,$login_key); setcookie("userId",$uid,$time+86400,"/",$domain); setcookie("userName",$name,$time+86400,"/",$domain); setcookie("userGroup",$group,$time+86400,"/",$domain); |
更多详细内容请查看:http://www.111cn.net/phper/18/1b5df18d38cfea1a63282c367f6cdf63.htm
现在在php跳出循环方法有几种,一种是使用goto另一种是使用php新特性goto命令哦,下面我来一下介绍介绍。break是被用在上面所提的各种循环和switch语句中的。他的作用是跳出当前的语法结构,执行下面的语句。break语句可以带一个参数n,表示跳出循环的层数,如果要跳出多重循环的话,可以用n来表示跳出的层数,如果不带参数默认是跳出本重循环
//php当前循环为1,循环由里到外依次递增,break默认为1,例如跳出第2层循环
代码如下 | 复制代码 |
for ($i=0;$i<3;$i++){ foreach (array(1,2,3) as $val){ foreach (array(1,2,3) as $val){ echo "1层循环<br/>"; break 2; //跳出第2层循环 } echo "2层循环<br/>"; } echo "3层循环<br/>"; } |
//结果:
//1层循环
//3层循环
//1层循环
//3层循环
//1层循环
//3层循环
goto
goto实际上只是一个运算符,和其他语言一样,PHP中也不鼓励滥用goto,滥用goto会导致程序的可读性严重下降。goto的作用是将程序的执行从当前位置跳转到其他任意位置,goto本身并没有要结束的循环的作用,但其跳转位置的作用使得其可以作为跳出循环使用。但PHP5.3及以上版本停止了对goto的支持,所以应该尽量避免使用goto。
下面的是一个使用了goto跳出循环的例子
代码如下 | 复制代码 |
for($i = 1000;$i >= 1 ; $i– ){ if( sqrt($i) <= 29){ goto a; } echo “$i”; } a: echo” this is the end”; |
例子中使用了goto来跳出循环,这个例子用来检测1000以内,那些数的平方根大于29
setcookie() 函数是php中一个用来设置cookie值的一个函数,下面我来总结一下setcookie() 函数的具体用法以及设置之后怎么获取cookie的值。setcookie() 函数向客户端发送一个 HTTP cookie。
cookie 是由服务器发送到浏览器的变量。cookie 通常是服务器嵌入到用户计算机中的小文本文件。每当计算机通过浏览器请求一个页面,就会发送这个 cookie。
cookie 的名称指定为相同名称的变量。例如,如果被发送的 cookie 名为 "name",会自动创建名为 $user 的变量,包含 cookie 的值。
必须在任何其他输出发送前对 cookie 进行赋值。
如果成功,则该函数返回 true,否则返回 false。
语法
setcookie(name,value,expire,path,domain,secure)
例
代码如下 | 复制代码 |
makecookie('111','www.111cn.net'); //下面兴一个支持二级域名cookie函数吧。 function setcookielive($name, $value='', $expire=0, $path='', $domain='', $secure=false, $httponly=false) { setcookielive('webab','111cn',time()+86000,'/','111cn.net'); //一入门级cookie设置方法 setcookie("cookie[three]", "cookiethree"); // after the page reloads, print them out |
js获取 cookie方法
代码如下 | 复制代码 |
<html> //clear cookie //set cookie |
var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。 而这个变量就会取得和被var_export一样的类型的值
•但是, 当变量类型为resource的时候, 是无法简单copy复制的,所以, 当var_export的变量是resource类型时, var_export会返回NULL
实例
代码如下 | 复制代码 |
$res = yblog_mspconfiginit("ratings"); resource(1) of type (yahoo_yblog) $res = fopen('status.html', 'r'); resource(2) of type (stream) |
实例
代码如下 | 复制代码 |
<? function getVar_export($value) { //使用实例方法 $g = new user(); |
更多详细内容请查看:http://www.111cn.net/phper/21/02496253b66d66ca613a2f19ea40c22e.htm
var_dump函数
var_dump (PHP 3 >= 3.0.5, PHP 4, PHP 5)
var_dump -- 打印变量的相关信息
void var_dump ( mixed expression [, mixed expression [, ...]] )
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
提示: 为了防止程序直接将结果输出到浏览器,可以使用输出控制函数(output-control functions)来捕获此函数的输出,并把它们保存到一个例如 string 类型的变量中。
可以比较一下 var_dump() 与 print_r()。
例子
代码如下 | 复制代码 |
代码如下 复制代码 <pre> <?php $a = array (1, 2, array ("a", "b", "c")); var_dump ($a); /* 输出: array(3) { [0]=> int(1) [1]=> int(2) [2]=> array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" } } */ $b = 3.1; $c = TRUE; var_dump($b,$c); /* 输出: float(3.1) bool(true) */ ?> </pre> |
更多详细内容请查看:http://www.111cn.net/phper/php/43382.htm
相关文章
- 取双引号内的内容我们如果一个字符串中只有一个可以使用explode来获得,但如果有多个需要使用正则表达式来提取了,具体的例子如下。 写程序的时候总结一点经验,如何只...2016-11-25
- 这篇文章主要给大家介绍了一个关于JS正则匹配的踩坑记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-13
- 今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可行的,于是总结一下,分享的同...2015-11-08
- 正则表达式是一门非常有用的并且进行模糊判断的一个功能了,我们下面来看通过正则来验证输入汉字、英语、数字,具体如下。 收藏了正则表达式。可以验证只能输入数...2016-11-25
- 这篇文章主要介绍了java正则表达式判断前端参数修改表中另一个字段的值,需要的朋友可以参考下...2021-05-07
- 常用的日期时间正则表达式 下面收藏了大量的日期时间正则匹配函数,包括分钟,时间与秒都能达到。 正则表达式 (?n:^(?=d)((?<day>31(?!(.0?[2469]|11))|30(?!.0?2)|29(...2016-11-25
- 网址规则是可寻的,所以我们可以使用正则表达式来提取字符串中的url地址了,下面一起来看看小编整理的几个PHP正则表达式匹配验证提取网址URL实例. 匹配网址 URL 的...2016-11-25
- 这篇文章主要介绍了正则表达式中两个反斜杠的匹配规则,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-07
- 这篇文章给大家详细介绍了JS中使用正则表达式g模式和非g模式的区别,非常不错,具有参考借鉴价值,需要的朋友参考下吧...2017-04-03
- 本文主要介绍了JavaScript利用正则表达式替换字符串中内容的具体实现方法,并做了简要注释,便于理解。具有一定的参考价值,需要的朋友可以看下...2017-01-09
- 这篇文章主要介绍了C#正则表达式使用方法,大家参考使用...2020-06-25
- 这篇文章主要介绍了JS基于正则截取替换特定字符之间字符串操作方法,结合具体实例形式分析了JS基于正则实现针对特殊字符、数字等字符串类型的截取操作相关技巧,需要的朋友可以参考下...2017-02-08
- c#正则表达式,用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。...2020-06-25
- 这篇文章主要介绍了python正则表达式常用函数及使用方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-07
- 这篇文章给大家介绍了Idea使用正则表达式批量替换字符串的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2021-07-21
- 关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配,因为我想学完之后写个语法高亮练手,所以用js代码当作例子...2021-05-07
- 今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可行的,于是总结一下,分享的同...2015-11-08
- 正则表达式的作用用来描述字符串的特征。本文重点给大家介绍C# 中使用正则表达式匹配字符的含义,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧...2020-06-25
- 这篇文章主要给大家介绍了关于利用Python验证的50个常见正则表达式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-11
- 这篇文章主要介绍了C#运算符和表达式,这是自学C#编程的第五篇,希望对大家的学习有所帮助。...2020-06-25