php邮箱地址正则表达式实现与详解
正则表达式了
代码如下 | 复制代码 |
^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$ |
在这段正则表达式中,“+”表示前面的字符串连续出现一个或多个;“^”表示下一个字符串必须出现在开头,“$”表示前一个字符串必须出现在结尾;
“.”也就是“.”,这里“”是转义符;“{2,3}”表示前面的字符串可以连续出现2-3次。“()”表示包含的内容必须同时出现在目标对象中。“[_.0-9a-z-]”表示包含在“_”、“.”、“-”、从a到z范围内的字母、从0到9范围内的数字中的任意字符;
这样一来,这个正则表达式可以这样翻译:
“下面的字符必须在开头(^)”、“该字符必须包含在“_”、“.”、“-”、从a到z范围内的字母、从0到9范围内的数字中([_.0-9a-z-])”、“前面这个字符至少出现一次(+)”、@、“该字符串由一个包含在从a到z范围内的一个字母、从0到9范围内的数字中的字符开头,后面跟至少一个包含在“-”、从a到z范围内任何一个字母、从0到9范围内任何一个数字中的字符,最后以.结束(([0-9a-z][0-9a-z-]+.))”、“前面这个字符至少出现一次(+)”、“从a到z范围内的字母出现2-3次,并以它结束([a-z]{2,3}$)”
代码如下 | 复制代码 |
function is_valid_email($email, $test_mx = false) { if(eregi("^([_a-z0-9-]+)(.[_a-z0-9-]+)*@([a-z0-9-]+)(.[a-z0-9-]+)*(.[a-z]{2,4})[ wind_phpcode_0 ]quot;, $email)) if($test_mx) { list($username, $domain) = split("@", $email); return getmxrr($domain, $mxrecords); } else return true; else return false; } |
域名由各国文字的特定字符集、英文字母、数字及“-”(即连字符或减号)任意组合而成, 但开头及结尾均不能含有“-”,“-”不能连续出现 。 域名中字母不分大小写。域名最长可达60个字节(包括后缀.com、.net、.org等)。
/^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?$/i;
/内容/i 构成一个不区分大小写的正则表达式;
^ 匹配开始
$ 匹配结束
[a-z] E-Mail前缀必需是一个英文字母开头
([a-z0-9]*[-_]?[a-z0-9]+)* 和_a_2、aaa11、_1_a_2匹配,和a1_、aaff_33a_、a__aa不匹配,如果是空字符,也是匹配的,*表示0个或者多个。
*表示0个或多个前面的字符.
[a-z0-9]* 匹配0个或多个英文字母或者数字
[-_]? 匹配0个或1“-”,因为“-”不能连续出现
[a-z0-9]+ 匹配1个或多个英文字母或者数字,因为“-”不能做为结尾
@ 必需有个有@
([a-z0-9]*[-_]?[a-z0-9]+)+ 见上面([a-z0-9]*[-_]?[a-z0-9]+)*解释,但是不能为空,+表示一个或者为多个。
[.] 将特殊字符(.)当成普通字符
[a-z]{2,3} 匹配2个至3个英文字母,一般为com或者net等.
([.][a-z]{2})? 匹配0个或者1个[.][a-z]{2}(比如.cn等) 我不知道一般.com.cn最后部份是不是都是两位的,如果不是请修改{2}为{起始字数,结束字数}
完美E-Mail正则表达式,附详细讲解,请大家帮忙测试一下! 2.抽取字符串中的email:
代码如下 | 复制代码 |
<?php function getEmail($str) { $pattern = "/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?/i"; preg_match_all($pattern,$str,$emailArr); return $emailArr[0]; } $emailstr = "9999@qq.com.cn俺不是米vi地方就开iid邮件列表:fuyongjie@163.com和hh@qq.com;.;;,fuyongjie.100@yahoo.com,fu-1999@sina.com"; $emailArr = getEmail($emailstr); echo "<pre>"; print_r($emailArr); echo "</pre>"; ?>打印如下: Array ( [0] =>9999@qq.com.cn [1] =>fuyongjie@163.com [2] =>hh@qq.com [3] =>fuyongjie.100@yahoo.com [4] =>fu-1999@sina.com )3.比较:第2里的正则里没有了第1的^和$; |
再看实例
代码如下 | 复制代码 |
function funcemail($str)//邮箱正则表达式 $str="qbcd@126.com.cn"; if (eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$",$email)) {
if (ereg("/^[a-z]([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?$/i; ",$email)){ |
strtr() 函数转换字符串中特定的字符。
语法
strtr(string,from,to)或者
strtr(string,array)
*/
代码如下 | 复制代码 |
$addr=strtr($addr,"","aao"); //第一种调用方法
echo strtr("hilla warld","ia","eo"); //数组 $arr = array("hello" => "hi", "world" => "earth"); |
/*
如果 from 和 to 的长度不同,则格式化为最短的长度。
再看一个简单的函数
// +------ 我以前写的一个替换函数
代码如下 | 复制代码 |
function file_modify($search_contents, $replace_contents, $filename) // +------ 用法 |
或直接用
// 或者直接用这个
代码如下 | 复制代码 |
preg_replace('|(<div class="body">)(^<]+)(</div>)|iSU', "${1}" . 替换后的内容 . "$3", $str);
preg_replace('|(<div class="body">)(^<]+)(</div>)|iSU', "${1}" . 替换后的内容 . "$3", $str); |
上面我所说的所有问题都只会替换一个文件里面的,那么我想替换一个站点所有目录里面文件指定字符,那么我们来看下面这个函数
代码如下 | 复制代码 |
<?php if (isset($_GET['dir'])){ //设置文件目录 $basedir=$_GET['dir']; }else{ $basedir = '.'; } $auto = 1; checkdir($basedir); function checkdir($basedir){ if ($dh = opendir($basedir)) { while (($file = readdir($dh)) !== false) { if ($file != '.' && $file != '..'){ if (!is_dir($basedir."/".$file)) { echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." <br>"; }else{ $dirname = $basedir."/".$file; checkdir($dirname); } } } closedir($dh); } } function checkBOM ($filename) { global $auto; $contents = file_get_contents($filename); $charset[1] = substr($contents, 0, 1); $charset[2] = substr($contents, 1, 1); $charset[3] = substr($contents, 2, 1); if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) { if ($auto == 1) { $rest = substr($contents, 3); rewrite ($filename, $rest); return ("<font color=red>BOM found, automatically removed._<a href=http://www.111cn.net>http://www.111cn.net/nokia/c6/</a></font>"); } else { return ("<font color=red>BOM found.</font>"); } } else return ("BOM Not Found."); } function rewrite ($filename, $data) { $filenum = fopen($filename, "w"); flock($filenum, LOCK_EX); fwrite($filenum, $data); fclose($filenum); } ?> |
这样我们只要运行就可以替换指定目录所所有文件的所有内容,这个还是特别方便的。
从标题来看我们知道Ckeditor不支持图片上传功能,它是需要一个组件Ckfinder才可以支持上传图片, 本文章就来详细的介绍了如何配置Ckeditor+Ckfinder实现图片上传的功能。第一:安装配置CKEditor
在扩展CKfinder实现图片上传之前,我们先把最基本的CKeditor编辑器安装一下。
1. 将下载的ckeditor_3.4.2.zip解压,复制目录下的ckeditor文件夹至所需目录,如/admin/。
第一:安装配置CKEditor ,可改/admin/ckeditor/ckeditor.js来配置编辑器,如字体、背景色、语言
、界面高宽、编辑器按钮分布等
代码如下 | 复制代码 |
config.language = 'en'; config.skin = 'v2'; config.uiColor = '#AADC6E'; config.toolbar = 'Basic'; |
….
2、官方的demo大多都喜欢用js配置editor区域,习惯写php的我就嫌麻烦,只好看内置的php类。
代码如下 | 复制代码 |
require_once ROOTPATH . "ckeditor/ckeditor.php"; textarea |
页面引用CKeditor,关键代码如下
代码如下 | 复制代码 |
<script type="text/javascript" src="ckeditor/ckeditor.js"></script> <textarea cols="80" name="content" rows="10"></textarea> |
第二步,我们来配置安装CKfinder
CKfinder是官方组件,下载地址如下:http://ckfinder.com/download (注意:与ckeditor不是同一
网站)。
1. 将下载的ckfinder_php_2.0.1.zip 解压,复制目录下的ckfinder文件夹至编辑器目
录,/admin/ckeditor。
2、需要上传了 ,只好加入ckfinder。把ckfinder和ckeditor放在同级目录下。
打开/ckfinder/config.php, 首先设置第一个函数CheckAuthentication(),这个函数需要按照自己的
规则写,只要return true的情况才能允许上传文件到服务器的,当然不建议直接写return true,这
将导致安全问题。可以采用session来处理比较方便。
我们可以简单的把子
config.php这样修改
代码如下 | 复制代码 |
function CheckAuthentication() return false;//改为return false |
或者更安全的做法利用session 关于session用法 [用力点击]
代码如下 | 复制代码 |
session_start(); |
找到”$baseUrl”,这个变量定义了ckfinder文件上传的目录,将值设为”$baseurl=’../data /’,
文件上传后程序他会在此目录下自动建立相应的文件夹如image、flash等。
第三:整合,实现图片上传功能
1. 在编辑器页面头部引用ckfinder.js文件,代码如下:
代码如下 | 复制代码 |
<script type="text/javascript" src="ckeditor/ckfinder/ckfinder.js"></script> |
下介绍两调用方法一种php
最后就是使用ckfinder
代码如下 | 复制代码 |
require_once ROOTPATH . "ckeditor/ckeditor.php"; 不能用绝对路径 |
另一种js或html页面的修改
代码如下 | 复制代码 |
<script type="text/javascript"> command=QuickUpload&type=Files', command=QuickUpload&type=Images', command=QuickUpload&type=Flash' |
这样就大功告成了,有想知道Ckeditor Ckfinder配置图片上传功能支持javascript html和php调用的朋友可以参考一下本教程
本站原创教程转载注明来源:http://www.111cn.net/phper/php.html
这是一段很简单的程序利用了php的file_get_contents函数来采集百度的数据,然后通过simplexml_load_String把它数据解析出来,这样数据就保存到了一个数组,我们就可以方便的利用了。代码如下 | 复制代码 |
function getBaiduHotKeyWord() |
代码如下 | 复制代码 |
echo baidu(www.111cn.net); //获取好主题在百度中的收录数量 ?> |
获取百度的热词
代码如下 | 复制代码 |
<?php |
这是在网上找的 稍微修改了下 将下面代码写入php文件
百度收录和百度快照时间
代码如下 | 复制代码 |
<?php </table> |
上面的方法未经过严格考虑,如果服务器不支持file_get_contents函数我们就无法操作了,所以还可以利用curl操作,这个更方便可以模仿用户哦。
相关文章
- 取双引号内的内容我们如果一个字符串中只有一个可以使用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