php正则之从字符串中提取email地址

 更新时间:2016年11月25日 17:31  点击:1439
有时我们会有专业的工具去搜集网站中网页上有email地址的内容,把内容中的邮箱地址给提取出来,下面我们来看个实例,有需要的参考一下。

[PHP]代码

 代码如下 复制代码

function extract_emails($str){ 

    // This regular expression extracts all emails from a string: 

    $regexp = '/([a-z0-9_.-])+@(([a-z0-9-])+.)+([a-z0-9]{2,4})+/i'; 

    preg_match_all($regexp, $str, $m); 

 

    return isset($m[0]) ? $m[0] : array(); 

 

$test_string = 'This is a test string... 

 

        test1@example.org 

 

        Test different formats: 

        test2@example.org; 

        <a href="test3@example.org">foobar</a> 

        <test4@example.org> 

 

        strange formats: 

        test5@example.org 

        test6[at]example.org 

        test7@example.net.org.com 

        test8@ example.org 

        test9@!foo!.org 

 

        foobar '; 

 print_r(extract_emails($test_string));

本文章不讲代码只讲关于php留言板的设计构思与中间用到那些技术处理,有需要的朋友可以参考一下。

-设计一个程序流程
       1.功能需要
       2.页面设计
       3.数据库设计
       4.代码设计
       5.调试发布
   -表单
       1.form></form>
       2.method:表单数据传输到服务器的方法
          post(表示在Http请求中嵌入表单数据)
          get   (表示将表单数据附加到请求该页的URL)  默认方法
          区别:
          a.Get传输数据量小,这主要是受URL长度限制;而Post可以传输大量数据。
          b.Get安全性比较低,但执行效率比Post好。      
          接收参数:
          POST方式:$_POST['name']
          GET方式:$_GET['name']
          注意:$_POST与$_GET必须为大写;
                     php5.0以上版本不加引号会报notice级别错误,要养成良好书写习惯,规范化。当然关闭display_error就另当别论。
         充电
          $_POST:它是由HTTP POST方法传递的变量组成的数组
          $_GET: 它是由HTTP GET方法传递的变量组成的数组
          $_COOKIE:它是由HTTP Cookies传递的变量组成的数组
          $_SESSION:它是包含当前脚本中会话变量的数组
          建议
          1.GET安全性较POST差,包含机密信息的话建议使用POST
          2.分页时使用GET
       3.常用控件
           a.单行文本框   <input type=text>
               多行文本框  <textarea></textarea>
           b.密码框   <input type=password>
           c.多选框   <input type=checkbox checked> (checked属性表示选中状态)
           d.单选框   <input type=radio checked> (checked同上)
           e.下拉菜单
               <select>
               <option selected></option>     //selected指定该选项的初始状态为选中
               </select>
            f.提交按钮 <input type=submit>
              重置按钮  <input type=reset>
        4.日期/时间函数
            php:date,time;
            mysql:now
   -javascript验证
       onsubmit:当提交按钮点击时触动,如果内容为"return function_name();"函数返回FALSE,则不提交表单。
   -初识COOKIE
        setcookie(name,value,time);
        注意:php的cookie必须刷新一次才能生效。

在开发中这个分页功能肯定是少不了的,今天我们分享一个非常实用且简单的php分页功能的实现代码,有需要的朋友可以参考一下。
 代码如下 复制代码

/**
* 分页函数
*
* @param int $count 条目总数
* @param int $perlogs 每页显示条数目
* @param int $page 当前页码
* @param string $url 页码的地址
*/
function pagination($count,$perlogs,$page,$url,$anchor=''){
$pnums = @ceil($count / $perlogs);
$re = '';
$urlHome = preg_replace("|[?&/][^./?&=]*page[=/-]|","",$url);
for ($i = $page-5;$i <= $page+5 && $i <= $pnums; $i++){
if ($i > 0){
if ($i == $page){
$re .= " <span>$i</span> ";
} elseif($i == 1) {
$re .= " <a href="$urlHome$anchor">$i</a> ";
} else {
$re .= " <a href="$url$i$anchor">$i</a> ";
}
}
}
if ($page > 6) $re = "<a href="{$urlHome}$anchor" title="首页">«</a><em>...</em>$re";
if ($page + 5 < $pnums) $re .= "<em>...</em> <a href="$url$pnums$anchor" title="尾页">»</a>";
if ($pnums <= 1) $re = '';
return $re;
}
在php中有很多方法把文本文件把转换成数组的方法,最直接的我们可以用到file函数

 代码如下 复制代码

$array = file('111cn.net.txt');

print_r( $array );

这样就直接输出的数组哦,朋友可以试一下


实例二

还有朋友说有file_get_contents()先保存到变量再利用explode以nr进行分切,这样也是办法,这样在效率就要差很多,我推荐第一种方法。

在php5以前好像是没有这个功能的,现在我们来看看新的autoload魔术方法用法吧,当你了解他后你觉得他太神奇了,好了费话不说了,看看测试过滤。

然而今天我却发现这个__autoload魔术方法或者你愿意称他为魔术函数,太专一了。当他加载需要包含的类文件时,甚至不管类文件中定义类之外的其它声明。

开始回放这个机制。

首先我们在创建一个Test.class.php文件,键入如下内容

 代码如下 复制代码

$publicPara='中共十七大啥时候召开的?';
class Test{
 public function  __construct(){
  global $publicPara;
  if(isset($publicPara)){
   echo $publicPara;
  }
  else{
   echo "管我啥事儿了?";
  }
 }
}

得保存这个文件哦!

然后重新建立一个文件命名为do.php键入如下内容

 代码如下 复制代码
<?php
require_once('Test.class.php');
new Test();
?>

这样的话输出的正如我们期望的那样是:中共十七大啥时候召开的?

但是当你用到__autoload这个魔术方法的时候,问题就出来了

 代码如下 复制代码

<?php
function __autoload($classname){
require_once($classname.".class.php");
}
new Test();
?>

[!--infotagslink--]

相关文章

  • C#中截取字符串的的基本方法详解

    这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
  • c#中判断字符串是不是数字或字母的方法

    这篇文章介绍了C#判断字符串是否数字或字母的实例,有需要的朋友可以参考一下...2020-06-25
  • PostgreSQL判断字符串是否包含目标字符串的多种方法

    这篇文章主要介绍了PostgreSQL判断字符串是否包含目标字符串的多种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-23
  • 详解C++ string常用截取字符串方法

    这篇文章主要介绍了C++ string常用截取字符串方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
  • php字符串按照单词逐个进行反转的方法

    本文实例讲述了php字符串按照单词进行反转的方法。分享给大家供大家参考。具体分析如下:下面的php代码可以将字符串按照单词进行反转输出,实际上是现将字符串按照空格分隔到数组,然后对数组进行反转输出。...2015-03-15
  • 使用list stream: 任意对象List拼接字符串

    这篇文章主要介绍了使用list stream:任意对象List拼接字符串操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-09
  • MySQL 字符串拆分操作(含分隔符的字符串截取)

    这篇文章主要介绍了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
  • C# 16 进制字符串转 int的方法

    这篇文章主要介绍了C# 16 进制字符串转 int的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 获取中文字符串的实际长度代码

    JS中默认中文字符长度和其它字符长度计算方法是一样的,但某些情况下我们需要获取中文字符串的实际长度,代码如下: 复制代码 代码如下: function strLength(str) { var realLength = 0, len = str.length, charCode = -1;...2014-06-07
  • C#实现字符串转换成字节数组的简单实现方法

    这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
  • 一个关于JS正则匹配的踩坑记录

    这篇文章主要给大家介绍了一个关于JS正则匹配的踩坑记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-13
  • php 中英文混合字符串截取

    文章介绍一个实用的函数,我们如果用php substr来截取字符在中文上处理的很有问题,今天自己写了一个比较好的中文与英文字符截取的函数,有需要的朋友可以参考下。 ...2016-11-25
  • C#实现对字符串进行大小写切换的方法

    这篇文章主要介绍了C#实现对字符串进行大小写切换的方法,涉及C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • PostgreSQL 字符串处理与日期处理操作

    这篇文章主要介绍了PostgreSQL 字符串处理与日期处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-01
  • c#将字节数组转成易读的字符串的实现

    这篇文章主要介绍了c#将字节数组转成易读的字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • C#获取字符串后几位数的方法

    这篇文章主要介绍了C#获取字符串后几位数的方法,实例分析了C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 解决vue字符串换行问题(绝对管用)

    这篇文章主要介绍了解决vue字符串换行问题(绝对管用),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-06
  • C#判断一个字符串是否是数字或者含有某个数字的方法

    这篇文章主要介绍了C#判断一个字符串是否是数字或者含有某个数字的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 【C#基础】Substring截取字符串的方法小结(推荐)

    这篇文章主要介绍了Substring截取字符串方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • 使用PHP similar text计算两个字符串相似度

    在网站开发中,我们经常使用php similar text 计算两个字符串相似度;1,similar_text的用法 如果我想计算"ly89cn"和"ly89"的相似程度,有两种表示方法复制代码 代码如下: echo similar_text('ly89cn', 'ly89'); ...2015-11-08