程序员人生 网站导航

PHP采集程序常用的采集函数收藏

栏目:php教程时间:2014-06-13 11:51:13

这几天关注了一下PHP的采集程序,才发现用PHP采集内容是这么方便,把经常用到的采集函数在这里总结一下,方便以后使用.

在php采集页面中最常用的就是过滤一些特殊字符或把内容中的图片也采集保存下来,下面我来给大家介绍我在写php采集程序时一些常用的函数.

  1. 获取所有链接内容和地址 
  2. function getAllURL($code){ 
  3. preg_match_all('/<as+href=["|']?([^>"' ]+)["|']?s*[^>]*>([^>]+)</a>/i',$code,$arr); 
  4. return array('name'=>$arr[2],'url'=>$arr[1]); 
  5. 获取所有的图片地址 
  6. function getImgSrc($code){ 
  7. $reg = "/]*src="(http://(.+)/(.+).(jpg|gif|bmp|bnp|png))"/isU"; 
  8. preg_match_all($reg$code$img_array, PREG_PATTERN_ORDER); 
  9. return $img_array[1]; 
  10. 当前的脚本网址 
  11. function getSelfURL(){ 
  12. if(!emptyempty($_SERVER["REQUEST_URI"])){ 
  13. $scriptName = $_SERVER["REQUEST_URI"]; 
  14. $nowurl = $scriptName
  15. }else
  16. $scriptName = $_SERVER["PHP_SELF"]; 
  17. if(emptyempty($_SERVER["QUERY_STRING"])) $nowurl = $scriptName
  18. else $nowurl = $scriptName."?".$_SERVER["QUERY_STRING"]; 
  19. return $nowurl
  20. 把全角数字转为半角数字 
  21. function getAlabNum($fnum){ 
  22. $nums = array("0","1","2","3","4","5","6","7","8","9"); 
  23. $fnums = "0123456789"
  24. for($i=0;$i<=9;$i++) $fnum = str_replace($nums[$i],$fnums[$i],$fnum); 
  25. $fnum = ereg_replace("[^0-9.]|^0{1,}","",$fnum); 
  26. if($fnum==""$fnum=0; 
  27. return $fnum
  28. 去除HTML标记 
  29. function text2Html($txt){ 
  30. $txt = str_replace(" "," ",$txt); 
  31. $txt = str_replace("<","<",$txt); 
  32. $txt = str_replace(">",">",$txt); 
  33. $txt = preg_replace("/[rn]{1,}/isU","<br/>rn",$txt); 
  34. return $txt
  35. 清除HTML标记 
  36. function clearHtml($str){ 
  37. $str = str_replace('<','<',$str); 
  38. $str = str_replace('>','>',$str); 
  39. return $str
  40. 相对路径转化成绝对路径 
  41. function relative2Absolute($content$feed_url) { 
  42. preg_match('/(http|https|ftp):///'$feed_url$protocol); 
  43. $server_url = preg_replace("/(http|https|ftp|news):///"""$feed_url); 
  44. $server_url = preg_replace("//.*/"""$server_url); 
  45. if ($server_url == '') { 
  46. return $content
  47. if (isset($protocol[0])) { 
  48. $new_content = preg_replace('/href="//''href="'.$protocol[0].$server_url.'/'$content); 
  49. $new_content = preg_replace('/src="//''src="'.$protocol[0].$server_url.'/'$new_content); 
  50. else { 
  51. $new_content = $content
  52. return $new_content
  53. 获取指定标记中的内容 
  54. function getTagData($str$start$end){ 
  55. if ( $start == '' || $end == '' ){ 
  56. return
  57. $str = explode($start$str); 
  58. $str = explode($end$str[1]); 
  59. return $str[0]; 
  60. HTML表格的每行转为CSV格式数组 
  61. function getTrArray($table) { 
  62. $table = preg_replace("'<td[^>]*?>'si",'"',$table); 
  63. $table = str_replace("</td>",'",',$table); 
  64. $table = str_replace("</tr>","{tr}",$table); 
  65. //去掉 HTML 标记 
  66. $table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table); 
  67. //去掉空白字符 
  68. $table = preg_replace("'([rn])[s]+'","",$table); 
  69. $table = str_replace(" ","",$table); 
  70. $table = str_replace(" ","",$table); 
  71. $table = explode(",{tr}",$table); 
  72. array_pop($table); 
  73. return $table
  74. 将HTML表格的每行每列转为数组,采集表格数据 
  75. function getTdArray($table) { 
  76. $table = preg_replace("'<table[^>]*?>'si","",$table); 
  77. $table = preg_replace("'<tr[^>]*?>'si","",$table); 
  78. $table = preg_replace("'<td[^>]*?>'si","",$table); 
  79. $table = str_replace("</tr>","{tr}",$table); 
  80. $table = str_replace("</td>","{td}",$table); 
  81. //去掉 HTML 标记 
  82. $table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table); 
  83. //去掉空白字符 
  84. $table = preg_replace("'([rn])[s]+'","",$table); 
  85. $table = str_replace(" ","",$table); 
  86. $table = str_replace(" ","",$table); 
  87. $table = explode('{tr}'$table); 
  88. array_pop($table); 
  89. foreach ($table as $key=>$tr) { 
  90. $td = explode('{td}'$tr); 
  91. array_pop($td); 
  92. $td_array[] = $td
  93. return $td_array
  94. 返回字符串中的所有单词 $distinct=true 去除重复 
  95. function splitEnStr($str,$distinct=true) { 
  96. preg_match_all('/([a-zA-Z]+)/',$str,$match); 
  97. if ($distinct == true) { 
  98. $match[1] = array_unique($match[1]); 
  99. sort($match[1]); 
  100. return $match[1]; 
------分隔线----------------------------
------分隔线----------------------------

最新技术推荐