php 判断邮箱地址的正则表达式详解
判断邮件的一个正则表达式,逐句解释下是什么意思
代码如下 | 复制代码 |
^(w+((-w+)|(.w+))*)+w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$ |
^ 匹配字符串头
(w+((-w+)|(.w+))*) 1:这里匹配laidfj456、sfi-lsoke、fe.23i这样的字符串
+ 匹配加号
w+((-w+)|(.w+))* 同1
@ 匹配@
[A-Za-z0-9]+ 2:由大小写字母和数字?成的字符串,等价于w+
((.|-)[A-Za-z0-9]+)* 匹配0个或多个由"."或"-"开头的字符串,如.oeiu234mJ、-oiwuer4
. 匹配"."
[A-Za-z0-9]+ 同2
$ 匹配字符串的?尾
实例
代码如下 | 复制代码 |
<?php |
代码如下 | 复制代码 |
<?php * 注意事项: define('DBTABLE_CATEGORY', 'xxx'); class Category_Logic var $_CurrentItem = NULL; //包含当前分类数据 TItem类的实例 var $CategoryID = 0; //当前分类ID,如果没有当前分类此项为 0 //--------------------------------------------------------------------------- $ArrayCount = 0; for($i = 0, $cnt = Count($Data); $i < $cnt; $i++) return $arr; //--------------------------------------------------------------------------- if($ProcessFunc) $str .= $ProcessFunc($Data[$i]); return $str; //--------------------------------------------------------------------------- $this->tblObj = new Table($Kernel->DBObj, DBTABLE_CATEGORY); if($CategoryID != -1) //--------------------------------------------------------------------------- $Item = new TItem($this->KernelRef->DBObj, DBTABLE_CATEGORY, '*', $CategoryID ,'ID'); $this->_SelfData = &$Item; $this->CategoryID = $CategoryID; //--------------------------------------------------------------------------- //---------------------------------------------------------------------------
$List = $this->tblObj->MapResult($this->tblObj->Select()); return $this->GetNodeData($List, $RootID); //--------------------------------------------------------------------------- if($Data[$i]['Child']) $Str .= $this->GenerateTypeTreeList($Data[$i]['Child'], $ProcessFunc, $floor + 1); return $Str; //--------------------------------------------------------------------------- for($i = 0, $cnt = Count($Data); $i < $cnt; $i++) if($Data[$i]['Child']) $Str .= '<li>' . $this->GenerateTypeTreeView($Data[$i]['Child'], $ProcessFunc) . '</li>'; $Str .= '</ul>'; return $Str; //--------------------------------------------------------------------------- if($this->_SelfData->Get("RootID") == 0) $Current = $this->CategoryID; $this->tblObj->SetCondition('RootID = ' . $this->_SelfData->Get('RootID') . " or ID = " . $this->_SelfData->Get('RootID')); $Data = $this->tblObj->MapResult($this->tblObj->Select()); return $this->_CurrentLevel($Data, $Current, $ProcessFunc); //--------------------------------------------------------------------------- return $this->tblObj->Insert( //--------------------------------------------------------------------------- $this->tblObj->SetFields('*'); return $this->tblObj->Delete(); //--------------------------------------------------------------------------- $prev = $this->tblObj->MapOneRow($this->tblObj->Select()); $this->tblObj->SetFields( return $this->tblObj->Update($arr); //--------------------------------------------------------------------------- return $this->tblObj->MapOneRow($this->tblObj->Select()); |
PHP中的CURL函数库(Client URL Library Function)
curl_close — 关闭一个curl会话
curl_copy_handle — 拷贝一个curl连接资源的所有内容和参数
curl_errno — 返回一个包含当前会话错误信息的数字编号
curl_error — 返回一个包含当前会话错误信息的字符串
curl_exec — 执行一个curl会话
curl_getinfo — 获取一个curl连接资源句柄的信息
curl_init — 初始化一个curl会话
curl_multi_add_handle — 向curl批处理会话中添加单独的curl句柄资源
curl_multi_close — 关闭一个批处理句柄资源
curl_multi_exec — 解析一个curl批处理句柄
curl_multi_getcontent — 返回获取的输出的文本流
curl_multi_info_read — 获取当前解析的curl的相关传输信息
curl_multi_init — 初始化一个curl批处理句柄资源
curl_multi_remove_handle — 移除curl批处理句柄资源中的某个句柄资源
curl_multi_select — Get all the sockets associated with the cURL extension, which can then be "selected"
curl_setopt_array — 以数组的形式为一个curl设置会话参数
curl_setopt — 为一个curl设置会话参数
curl_version — 获取curl相关的版本信息
curl_init()函数的作用初始化一个curl会话,curl_init()函数唯一的一个参数是可选的,表示一个url地址。
curl_exec()函数的作用是执行一个curl会话,唯一的参数是curl_init()函数返回的句柄。
curl_close()函数的作用是关闭一个curl会话,唯一的参数是curl_init()函数返回的句柄。
1. php curl的默认调用方法,get方式访问url
代码如下 | 复制代码 |
.... $curl_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //获取http返回值 |
2. 设置http header支持curl访问lighttpd服务器
Java代码
代码如下 | 复制代码 |
$header[]= 'Expect:'; |
$header[]= 'Expect:';
3. 设置curl,只获取http header,不获取body:
Java代码
代码如下 | 复制代码 |
curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_HEADER, 1); |
或者只获取body:
Java代码
代码如下 | 复制代码 |
curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body |
4. 访问虚拟主机,需设置Host
代码如下 | 复制代码 |
$header[]= 'Host: '.$host; |
5. 使用post, put, delete等REStful方式访问url
post:
代码如下 | 复制代码 |
curl_setopt($ch, CURLOPT_POST, 1 ); put, delete: curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); //或者PUT,需要服务器支持这些方法。 |
6. 保存下载内容为文件
代码如下 | 复制代码 |
curl_setopt($ch, CURLOPT_FILE, $fp); |
模拟POST请求
代码如下 | 复制代码 |
<?PHP $url = 'POST_URL'; $fields=array( 'a' => 'a', 'b' => 'b', ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, count($fields)); curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); ob_start(); curl_exec($ch); $result = ob_get_contents(); ob_end_clean(); echo $result; curl_close($ch); ?> |
模仿get登录
代码如下 | 复制代码 |
|
注意,如果你的curl不可以使用我们可以参考下面方法来打开
启php curl函数库的步骤
1).去掉windows/php.ini 文件里;extension=php_curl.dll前面的; /*用 echo phpinfo();查看php.ini的路径*/
2).把php5/libeay32.dll,ssleay32.dll复制到系统目录windows/下
3).重启apache
配置php支持curl
curl是一个利用URL语法在命令行方式下工作的文件传输工具。它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传, 上载文件断点续传, http代理服务器管道( proxy tunneling), 甚至它还支持IPv6, socks5代理服务器, 通过http代理服务器上传文件到FTP服务器等等,功能十分强大。Windows操作系统下的网络蚂蚁,网际快车(FlashGet)的功能它都可以做到。准确的说,curl支持文件的上传和下载,所以是一个综合传输工具,但是按照传统,用户习惯称curl为下载工具。
配置方法:
1、拷贝PHP目录中的libeay32.dll 和 ssleay32.dll 两个文件到 system32 目录。
2、修改php.ini:配置好 extension_dir ,去掉 extension = php_curl.dll 前面的分号。
---------------------------
php下扩展php_curl.dll的安装
---------------------------
已经内置有php_curl.dll,在ext目录下,此DLL用于支持SSL和zlib.
在php.ini中找到有extension=php_curl.dll, 去掉前面的注释.
设置extension_dir=c:phpext, 刷新PHP页面时报错, 说找不到模块php_curl.dll.
拷贝php_curl.dll 到windowssystem32,还是同样的错.
在网上找了一下,需要将:
libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll
都拷贝到system32目录下,重启IIS即可.
在php中匹配数字与字母很简单,但是匹配中文汉字时就会出现一些问题了,下面我来给大家介绍在php中匹配中文,数字,字母的一些方法。方法一
代码如下 | 复制代码 |
if(preg_match("/^d*$/", "4312")) if(preg_match("/^[a-z]*$/i", "fdsFDfd")) if(preg_match("/^[a-zd]*$/i", "fd4fd34")) |
中文汉字
代码如下 | 复制代码 |
$username=$_REQUEST['username']; |
上面是比较散的,下面把几个总结到一起来
代码如下 | 复制代码 |
$input_tag = $_POST['tag']; |
最简单的办法mt_rand函数
mt_rand() 使用 Mersenne Twister 算法返回随机整数。
例子
在本例中,我们会返回一些随机数:
代码如下 | 复制代码 |
<?php 输出类似: 3150906288 |
上面相对来说安全指数很低的,因为全是数字哦,下面另名一种
1、预置一个的字符串 $chars ,包括 a – z,A – Z,0 – 9,以及一些特殊字符
2、在 $chars 字符串中随机取一个字符
代码如下 | 复制代码 |
function generate_password( $length = 8 ) { $password = ''; |
一个朋友提供的md5()函数的返回值的缘故,生成的密码只包括字母和数字,不过也算是一个不错的方法。算法思想:
1、time() 获取当前的 Unix 时间戳
2、将第一步获取的时间戳进行 md5() 加密
3、将第二步加密的结果,截取 n 位即得想要的密码
代码如下 | 复制代码 |
function get_password( $length = 8 ) |
相关文章
- 取双引号内的内容我们如果一个字符串中只有一个可以使用explode来获得,但如果有多个需要使用正则表达式来提取了,具体的例子如下。 写程序的时候总结一点经验,如何只...2016-11-25
- 今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到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
- 这篇文章主要介绍了C#正则表达式使用方法,大家参考使用...2020-06-25
- c#正则表达式,用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。...2020-06-25
- 本文主要介绍了JavaScript利用正则表达式替换字符串中内容的具体实现方法,并做了简要注释,便于理解。具有一定的参考价值,需要的朋友可以看下...2017-01-09
- 这篇文章主要介绍了python正则表达式常用函数及使用方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-07
- 这篇文章给大家介绍了Idea使用正则表达式批量替换字符串的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2021-07-21
- 今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可行的,于是总结一下,分享的同...2015-11-08
- 正则表达式的作用用来描述字符串的特征。本文重点给大家介绍C# 中使用正则表达式匹配字符的含义,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧...2020-06-25
- 这篇文章主要给大家介绍了关于利用Python验证的50个常见正则表达式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-11
- 这篇文章主要介绍了C#运算符和表达式,这是自学C#编程的第五篇,希望对大家的学习有所帮助。...2020-06-25
- 这篇文章主要介绍了PHP正则表达式过滤html标签属性的相关内容,实用性非常,感兴趣的朋友参考下吧...2016-05-06
- 在本篇文章里小编给大家整理的是一篇关于js用正则表达式筛选年月日的实例方法,对此有兴趣的朋友们可以学习下。...2021-01-04
javascript 手机号码正则表达式验证函数 <font color=red>原创</font>
随着手机号码段的不断增加,以前网上的手机号码验证函数都不能那么完美的支持了,这里脚本之家编辑特为大家准备的一个简单的正则与手机验证的函数分析。...2021-05-07