1 file函数读取文件,返回文件内容的数组.
2 遍历数组,正则分析每行内容.
  preg_match_all("/([\d]{11})/", $str, $matches);
  将匹配的手机号放入数组里.
3 输出4 点筛选功能以后,获取上次保存的数组,当然你也可以重新从1开始分析,但哪样效率不高.
  再次遍历数组,过滤重复的手机号.
5 将过滤后的手机号写放到文件里.

解决方案 »

  1.   

    我是刚接触PHP编程不久,有很多还需要向各位前辈多多学习,希望以后多多指教!十分的感谢!如能有一段代码参考会更好一点!
      

  2.   

    分页就不给写了吧,我只是一个页面输出所有的和不重复的手机号数组.
    如果你要做成多个页面的话,自己拆分一下就行了.
    <?php
    $arrFile = file("xxx.txt");
    //array_unique
    $arrPhone = array();
    $arrUniquePhone = array();
    foreach($arrFile as $value)
    {
    //正则可以更加严密点,比如手机号前三位只是13的
    //用preg_match_all可以匹配一行内多个手机号,如果你只有一个手机号,可以用preg_match
    if(preg_match_all('/(13[\d]{9})/i', $value, $matches))
    {
    $arrPhone = array_merge($arrPhone, $matches[1]);
    }
    /*
      if(preg_match('/(13[\d]{9})/i', $value, $matches))
    {
    $arrPhone = array_push($arrPhone, $matches[1]);
    }
    */
    }
    //所有的手机号
    print_r($arrPhone);//唯一的手机号
    $arrUniquePhone = array_unique($arrPhone);
    print_r($arrUniquePhone);//写入文件
    file_put_contents("test.txt", implode("\n", $arrUniquePhone));
    ?>