本帖最后由 leon_studio 于 2009-5-4 21:04 编辑

1.采集表格中的内容为数组

  1. function get_td_array($table) {
  2. $table = preg_replace("'<table[^>]*?>'si","",$table);
  3. $table = preg_replace("'<tr[^>]*?>'si","",$table);
  4. $table = preg_replace("'<td[^>]*?>'si","",$table);
  5. $table = str_replace("</tr>","{tr}",$table);
  6. $table = str_replace("</td>","{td}",$table);
  7. //去掉 HTML 标记
  8. $table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table);
  9. //去掉空白字符
  10. $table = preg_replace("'([rn])[s]+'","",$table);
  11. $table = str_replace(" ","",$table);
  12. $table = str_replace(" ","",$table);
  13. $table = explode('{tr}', $table);
  14. array_pop($table); //OSPHP.com.CN
  15. foreach ($table as $key=>$tr) {
  16. $td = explode('{td}', $tr);
  17. array_pop($td);
  18. $td_array[] = $td;
  19. }
  20. return $td_array;
  21. }

复制代码

2.取得某行代码中间的字符串

  1. /**
  2. +----------------------------------------------------------
  3. * 取得某行代码之间的字符串
  4. +----------------------------------------------------------
  5. * 例: echo get_innerhtml("<tr><td height=20>something</td></tr>", "td");   //will print "something".
  6. +----------------------------------------------------------
  7. */
  8. function get_innerhtml($html,$label) {
  9. $result_arr = preg_split("/<\/".$label.">/i",$html);
  10. $pattern = "/<".$label.".*?>/i";
  11. for ($i = 0; $i < count($result_arr); $i++) {
  12. list($left, $right) = preg_split($pattern,$result_arr[$i],2);
  13. $result_arr[$i] = $right;
  14. }
  15. return $result_arr;
  16. }

复制代码

3.获取Input的HTML代码中的Value值

  1. //获取Input的HTML代码中的Value值
  2. function get_input_value($input) {
  3. $pos = stripos($input, "value=") + 6;
  4. if ($pos !== false) {
  5. $input = substr($input, $pos);
  6. if (substr($input, 0, 1) == "\"")
  7. return substr($input, 1, strpos($input, "\"", 1) - 1);
  8. else
  9. return substr($input, 0, strpos($input, " ") - 1);
  10. }
  11. return false;
  12. }

复制代码

4.获取字符串$str中,字符串$a与字符串$b之间的字符串

  1. //获取字符串$str中,字符串$a与字符串$b之间的字符串
  2. function getcontentbetween($a, $b, $str) {
  3. if ($str!=="" && $a!=="" && $b!=="") {
  4. $start = strpos($str, $a) + strlen($a);
  5. return substr($str, $start, strpos($str, $b, $start + 1) - $start);
  6. }
  7. return false;
  8. }

复制代码

5.<br>变成回车

  1. function br2nl($text)
  2. {
  3. return  trim(preg_replace('/<br\s*/?'.'>/i', '', $text));
  4. }

复制代码

6.换行奕成<p></p>

  1. function nl2p($text)
  2. {
  3. return str_replace(array("\r\n\r\n","\r\n","\r","\n"),"</p><p>",$text);
  4. }

复制代码

7.获得当前脚本网址

  1. function get_php_url(){
  2. if(!empty($_SERVER["REQUEST_URI"])){
  3. $scriptName = $_SERVER["REQUEST_URI"];
  4. $nowurl = $scriptName;
  5. }else{
  6. $scriptName = $_SERVER["HP_SELF"];
  7. if(empty($_SERVER["QUERY_STRING"])) $nowurl = $scriptName;
  8. else $nowurl = $scriptName."?".$_SERVER["QUERY_STRING"];
  9. }
  10. return $nowurl;
  11. }

复制代码

8.去除html标记

  1. function Text2Html($txt){
  2. $txt = str_replace("  "," ",$txt);
  3. $txt = str_replace("<","&lt;",$txt);
  4. $txt = str_replace(">","&gt;",$txt);
  5. $txt = preg_replace("/[\r\n]{1,}/isU","<br/>\r\n",$txt);
  6. return $txt;
  7. }

复制代码

9.相对路径转绝对路径

  1. function relative_to_absolute($content, $feed_url) {
  2. preg_match('/(http|https|ftp):\/\//', $feed_url, $protocol);
  3. $server_url = preg_replace("/(http|https|ftp|news):\/\//", "", $feed_url);
  4. $server_url = preg_replace("/\/.*/", "", $server_url);
  5. if ($server_url == '') {
  6. return $content;
  7. }
  8. if (isset($protocol[0])) {
  9. $new_content = preg_replace('/href="\//', 'href="'.$protocol[0].$server_url.'/', $content);
  10. $new_content = preg_replace('/src="\//', 'src="'.$protocol[0].$server_url.'/', $new_content);
  11. } else {
  12. $new_content = $content;
  13. }
  14. return $new_content;
  15. }

复制代码

10.取得所有链接

  1. function get_all_url($code){
  2. preg_match_all('/<a\s+href=["|\']?([^>"\' ]+)["|\']?\s*[^>]*>([^>]+)<\/a>/i',$code,$arr);
  3. return array('name'=>$arr[2],'url'=>$arr[1]);
  4. }

复制代码

11.获取指定标记中的内容

  1. function get_tag_data($str, $start, $end){
  2. if ( $start == '' || $end == '' ){
  3. return;
  4. }
  5. $str = explode($start, $str);
  6. $str = explode($end, $str[1]);
  7. return $str[0];
  8. }

复制代码

本帖最后由 leon_studio 于 2009-5-11 18:27 编辑

再补充两个
12.获取远程文件内容(抓内容)

  1. /**
  2. 获取远程文件内容
  3. @param $url 文件http地址
  4. */
  5. function fopen_url($url)
  6. {
  7. if (function_exists('file_get_contents')) {
  8. $file_content = @file_get_contents($url);
  9. } elseif (ini_get('allow_url_fopen') && ($file = @fopen($url, 'rb'))){
  10. $i = 0;
  11. while (!feof($file) && $i++ < 1000) {
  12. $file_content .= strtolower(fread($file, 4096));
  13. }
  14. fclose($file);
  15. } elseif (function_exists('curl_init')) {
  16. $curl_handle = curl_init();
  17. curl_setopt($curl_handle, CURLOPT_URL, $url);
  18. curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT,2);
  19. curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER,1);
  20. curl_setopt($curl_handle, CURLOPT_FAILONERROR,1);
  21. curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Trackback Spam Check');
  22. $file_content = curl_exec($curl_handle);
  23. curl_close($curl_handle);
  24. } else {
  25. $file_content = '';
  26. }
  27. return $file_content;
  28. }

复制代码

13.去掉指定的标签函数

  1. /*
  2. $str = "ertet<a href=\"http://www.xxxx.com\" tasdfgrget=\"_blank\">aaaabbbb
  3. <img src=\"http://img.xxx.cn/xxxx.jpg\" width=\"760\" height=\"90\" border=\"0\" />
  4. </a>aaadf";
  5. echo _strip_tags(array("a","img"),$str);
  6. */
  7. function _strip_tags($tags_a,$str)
  8. {
  9. foreach ($tags_a as $tag)
  10. {
  11. $p[]="/(<(?:\/".$tag."|".$tag.")[^>]*>)/i";
  12. }
  13. $return_str = preg_replace($p,"",$str);
  14. return $return_str;
  15. }
  16. 14.从URL中获取根域名
  17. [code]
  18. <?php
  19. function getUrlBase($url=''){
  20. if(!is_string($url) || empty($url)) return;
  21. $parse = parse_url($url);
  22. $host = $parse['host'];
  23. $h = explode('.', $host);
  24. //判断是否本机域名或IP
  25. if(false === strpos($host, '.') || preg_match("/^(\d+\.){3}(\d+)$/", $host)){
  26. $root = $host;
  27. }elseif(preg_match("/(?:com|tel|mobi|net|org|asia|me|tv|biz|cc|name|info)(?:\.\w{2})$/", $host, $match)){
  28. array_pop($h);
  29. array_pop($h);
  30. $root = array_pop($h) . '.' . $match[0];
  31. }elseif(preg_match("/(?:\w{2,4})$/", $host, $match)){
  32. array_pop($h);
  33. $root = array_pop($h) . '.' . $match[0];
  34. }
  35. return $root;
  36. }

复制代码

有用的函数-系统采集相关推荐

  1. Sql Server 三个很有用的函数

    好久没有写有关SqlServer 数据库方面技术的文章了,正好今天遇到了一个问题,我就把这个当做一个练习记录下来.今天遇到一个麻烦事,详情如下:公司买了一个系统,在这个系统里面有一个"充值卡 ...

  2. 邹检验 matlab,科学网—Matlab中一个很有用的函数:regionprops - 邹兴文的博文

    Matlab中一个很有用的函数:regionprops 已有 6712 次阅读 2010-1-30 22:52 |个人分类:开发经验|系统分类:科研笔记| 有用的函数, regionprops Mat ...

  3. java where函数_WHERE 子句中有用的函数

    有很多时候,可能需要对条件进行一些特殊的处理.例如,存储的字符串可能在串前或串后包含空格,这样进行 字符串比较 时,多余的空格可能导致比较的错误,如果能去掉这些空格就不会产生多余的错误.也可能系统规定 ...

  4. Python3中一些有用的函数

    Python3中一些有用的函数 1.根据两个列表创建一个字典 prod_id = [1, 2, 3]prod_name = ["foo", "bar", &qu ...

  5. PHP培训教程 PHP里10个鲜为人知但却非常有用的函数

    php里有非常丰富的内置函数,很多我们都用过,但仍有很多的函数我们大部分人都不熟悉,可它们却十分的有用.这篇文章里,兄弟连小编列举了一些鲜为人知但会让你眼睛一亮的PHP函数. levenshtein( ...

  6. php html采集,php file_get_contents函数轻松采集html数据

    当前位置:Gxlcms > php框架 > php file_get_contents函数轻松采集html数据 php file_get_contents函数轻松采集html数据 时间:2 ...

  7. PHP里10个鲜为人知但却非常有用的函数

    PHP里有非常丰富的内置函数,很多我们都用过,但仍有很多的函数我们大部分人都不熟悉,可它们却十分的有用.这篇文章里,我列举了一些鲜为人知但会让你眼睛一亮的PHP函数. levenshtein() 你有 ...

  8. matlab max函数_从零开始的matlab学习笔记——(14)一些有用的函数(上):最值,平均数,中位数...

    matlab应用--求极限,求导,求积分,解方程....更多内容尽在个人专栏:matlab学习 上一节说了说符号运算中的多项式,这一节我们来看看几个非常有用的函数 最值: 最大值max(),最小值mi ...

  9. WMCMS小说系统采集插件-WMCMS小说系统采集器下载

    WMCMS小说系统采集插件,WMCMS小说系统怎么实现自动采集自动伪原创发布.今天给大家分享一款免费的WMCMS小说系统自动采集伪原创发布软件.同时还支持各大网站自动采集伪原创发布. 很多人曾经发现当 ...

  10. 树木分形迭代图 matlab,基于迭代函数系统的分形植物模拟

    1. 引言 自然景物模拟是计算机图形学中一个重要研究课题,其中植物形态仿真模拟引起了广泛的关注.许多学者对其进行了大量的研究,目前常见的方法有L-系统 [1] [2] .迭代函数系统 [3] [4] ...

最新文章

  1. rtklib 天线相位中心_基于传输线匹配理论的OAM透射阵天线设计
  2. yolov5的3.0版本代码在训练的时候报错:ImportError: cannot import name ‘amp‘ from ‘torch.cuda‘ 以及yolov5的3.0环境安装
  3. CentOS-6.4 minimal - 安装VMware Tools(linux)
  4. nicetool好工具_N个办公辅助好工具,无需下载,简单实用
  5. Transformer在图像复原领域的降维打击,ETH提出SwinIR:各项任务全面领先
  6. arcgis 圈选获取图层下点位_ArcGIS小技巧——提取面要素的质心点
  7. Helpful links
  8. 获取当前时间getDate()注意点
  9. jquery下插入标签以及clone的应用
  10. VMware Workstation下减小ubuntu系统占用系统盘大小
  11. 谈谈tmpdir与innodb_tmpdir的区别和用处
  12. 从0开始使用腾讯云GPU服务器
  13. 自动排单功能的一些思考
  14. python自然语言处理学习笔记二
  15. 什么是自签名证书?自签名SSL证书的优缺点?
  16. 英特尔cpu天梯图排名(附台式机CPU天梯图2022年3月份最新版精简图)
  17. 旷视研究院「技术圆桌派-上海专场 」报名启动!
  18. mysql索引填充因子_处理索引碎片,填充因子(FILLFACTOR)
  19. python3注册全局热键
  20. EVE实现VPLS实验

热门文章

  1. 记录极致cms百度编辑器修改上传图片大小限制
  2. 万能DOS启动盘制作全攻略(转)
  3. 苹果手机邮箱imap服务器没有响应,Apple手机的内置电子邮件地址突然显示imap.gmail.com没有响应,无法发送电子邮件...
  4. 共模干扰和差模干扰,看完终于明白了
  5. QT输出问题[zhaxok] Enter
  6. java 数组定义是必须指定长度吗
  7. 前端大屏幕项目大厂解决兼容问题(react)
  8. 求正整数2和n之间的完全数
  9. 服务器版系统和w7区别,小编告诉大家W7精简版和旗舰版啥区别
  10. ArcGIS遇到严重的应用程序错误的解决办法