作为程序员一定要保持良好的睡眠,才能好编程

php采集的方法

发布时间:2015-12-04

<?php      
function preg_substr($start, $end, $str) // 正则截取函数      
{      
    $temp = preg_split($start, $str);      
    $content = preg_split($end, $temp[1]);      
    return $content[0];      
}   
function str_substr($start, $end, $str) // 字符串截取函数      
{      
    $temp = explode($start, $str, 2);      
    $content = explode($end, $temp[1], 2);      
    return $content[0];      
}   
// ---------------- 使用实例 ----------------   
$str = iconv("UTF-8", "GB2312", file_get_contents("http://www.mycodes.net"));    
echo ('标题: ' . str_substr("<title>", "</title>", $str)); // 通过字符串提取标题   
echo ('作者: ' . preg_substr("/userid=\d+\">/", "/<\//", $str)); // 通过正则提取作者   
echo ('内容: ' . str_substr('<div class="content">', '</div>', $str)); //内容当然不可以少   
?>
   



非负整数:^\d+$ 

正整数:^[0-9]*[1-9][0-9]*$ 

非正整数:^((-\d+)|(0+))$ 

负整数:^-[0-9]*[1-9][0-9]*$ 

整数:^-?\d+$ 

非负浮点数:^\d+(\.\d+)?$ 

正浮点数:^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ 

非正浮点数:^((-\d+\.\d+)?)|(0+(\.0+)?))$ 

负浮点数:^(-((正浮点数正则式)))$ 

英文字符串:^[A-Za-z]+$ 

英文大写串:^[A-Z]+$ 

英文小写串:^[a-z]+$ 

英文字符数字串:^[A-Za-z0-9]+$ 

英数字加下划线串:^\w+$ 

E-mail地址:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ 

URL:^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$ 

或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$ 

邮政编码:^[1-9]\d{5}$ 

中文:^[\u0391-\uFFE5]+$ 

电话号码:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$ 

手机号码:^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$ 

双字节字符(包括汉字在内):^\x00-\xff 

匹配首尾空格:(^\s*)|(\s*$)(像vbscript那样的trim函数) 

匹配HTML标记:<(.*)>.*<\/\1>|<(.*) \/> 

匹配空行:\n[\s| ]*\r 

提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)? 

提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 

提取信息中的图片链接:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)? 

提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+) 

提取信息中的中国手机号码:(86)*0*13\d{9} 

提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8} 

提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14} 

提取信息中的中国邮政编码:[1-9]{1}(\d+){5} 

提取信息中的浮点数(即小数):(-?\d*)\.?\d+ 

提取信息中的任何数字 :(-?\d*)(\.\d+)? 

IP:(\d+)\.(\d+)\.(\d+)\.(\d+) 

电话区号:/^0\d{2,3}$/ 

腾讯QQ号:^[1-9]*[1-9][0-9]*$ 

帐号(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 

中文、英文、数字及下划线:^[\u4e00-\u9fa5_a-zA-Z0-9]+$