PHP 采集程序中常用的函数


Posted in PHP onDecember 09, 2009
//获得当前的脚本网址 
function get_php_url() 
{ 
if(!empty($_SERVER[”REQUEST_URI”])) 
{ 
$scriptName = $_SERVER[”REQUEST_URI”]; 
$nowurl = $scriptName; 
} 
else 
{ 
$scriptName = $_SERVER[”PHP_SELF”]; 
if(empty($_SERVER[”QUERY_STRING”])) 
$nowurl = $scriptName; 
else 
$nowurl = $scriptName.”?”.$_SERVER[”QUERY_STRING”]; 
} 
return $nowurl; 
} //把全角数字转为半角数字 
function GetAlabNum($fnum) 
{ 
$nums = array(”0”,”1”,”2”,”3”,”4”,”5”,”6”,”7”,”8”,”9”); 
$fnums = “0123456789″; 
for($i=0;$i<=9;$i++) $fnum = str_replace($nums[$i],$fnums[$i],$fnum); 
$fnum = ereg_replace(”[^0-9\.]|^0{1,}”,””,$fnum); 
if($fnum==””) $fnum=0; 
return $fnum; 
} 
//去除HTML标记 
function Text2Html($txt) 
{ 
$txt = str_replace(” “,” ”,$txt); 
$txt = str_replace(”<”,”<”,$txt); 
$txt = str_replace(”>”,”>”,$txt); 
$txt = preg_replace(”/[\r\n]{1,}/isU”,”<br/>\r\n”,$txt); 
return $txt; 
} 
//清除HTML标记 
function ClearHtml($str) 
{ 
$str = str_replace('<','<',$str); 
$str = str_replace('>','>',$str); 
return $str; 
} 
//相对路径转化成绝对路径 
function relative_to_absolute($content, $feed_url) 
{ 
preg_match('/(http|https|ftp):\/\//', $feed_url, $protocol); 
$server_url = preg_replace(”/(http|https|ftp|news):\/\//”, “”, $feed_url); 
$server_url = preg_replace(”/\/.*/”, “”, $server_url); 
if ($server_url == ”) 
{ 
return $content; 
} 
if (isset($protocol[0])) 
{ 
$new_content = preg_replace('/href=”\//', ‘href=”‘.$protocol[0].$server_url.'/', $content); 
$new_content = preg_replace('/src=”\//', 'src=”‘.$protocol[0].$server_url.'/', $new_content); 
} 
else 
{ 
$new_content = $content; 
} 
return $new_content; 
} 
//取得所有链接 
function get_all_url($code){ 
preg_match_all('/<a\s+href=[”|\']?([^>”\' ]+)[”|\']?\s*[^>]*>([^>]+)<\/a>/i',$code,$arr); 
return array('name'=>$arr[2],'url'=>$arr[1]); 
} 
//获取指定标记中的内容 
function get_tag_data($str, $start, $end) 
{ 
if ( $start == ” || $end == ” ) 
{ 
return; 
} 
$str = explode($start, $str); 
$str = explode($end, $str[1]); 
return $str[0]; 
} 
//HTML表格的每行转为CSV格式数组 
function get_tr_array($table) 
{ 
$table = preg_replace(”‘<td[^>]*?>'si”,'”‘,$table); 
$table = str_replace(”</td>”,'”,',$table); 
$table = str_replace(”</tr>”,”{tr}”,$table); 
//去掉 HTML 标记 
$table = preg_replace(”‘<[\/\!]*?[^<>]*?>'si”,””,$table); 
//去掉空白字符 
$table = preg_replace(”‘([\r\n])[\s]+'”,””,$table); 
$table = str_replace(” “,””,$table); 
$table = str_replace(” “,””,$table); 
$table = explode(”,{tr}”,$table); 
array_pop($table); 
return $table; 
} 
//将HTML表格的每行每列转为数组,采集表格数据 
function get_td_array($table) 
{ 
$table = preg_replace(”‘<table[^>]*?>'si”,””,$table); 
$table = preg_replace(”‘<tr[^>]*?>'si”,””,$table); 
$table = preg_replace(”‘<td[^>]*?>'si”,””,$table); 
$table = str_replace(”</tr>”,”{tr}”,$table); 
$table = str_replace(”</td>”,”{td}”,$table); 
//去掉 HTML 标记 
$table = preg_replace(”‘<[\/\!]*?[^<>]*?>'si”,””,$table); 
//去掉空白字符 
$table = preg_replace(”‘([\r\n])[\s]+'”,””,$table); 
$table = str_replace(” “,””,$table); 
$table = str_replace(” “,””,$table); 
$table = explode('{tr}', $table); 
array_pop($table); 
foreach ($table as $key=>$tr) 
{ 
$td = explode('{td}', $tr); 
array_pop($td); 
$td_array[] = $td; 
} 
return $td_array; 
} 
//返回字符串中的所有单词 $distinct=true 去除重复 
function split_en_str($str,$distinct=true) 
{ 
preg_match_all('/([a-zA-Z]+)/',$str,$match); 
if ($distinct == true) 
{ 
$match[1] = array_unique($match[1]); 
} 
sort($match[1]); 
return $match[1]; 
}
PHP 相关文章推荐
PHP 分页类(模仿google)-面试题目解答
Sep 13 PHP
DedeCMS dede_channeltype表字段注释
Apr 07 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
Jun 24 PHP
php的ajax简单实例
Feb 27 PHP
php根据年月获取季度的方法
Mar 31 PHP
PHP 反射(Reflection)使用实例
May 12 PHP
PHP会话处理的10个函数
Aug 11 PHP
yii2实现根据时间搜索的方法
May 25 PHP
PHP耦合设计模式实例分析
Aug 08 PHP
PHP大文件分块上传功能实例详解
Jul 22 PHP
PHP基于swoole多进程操作示例
Aug 12 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
Apr 23 PHP
Php 构造函数construct的前下划线是双的_
Dec 08 #PHP
PHP 读取文件内容代码(txt,js等)
Dec 06 #PHP
PHP 用数组降低程序的时间复杂度
Dec 04 #PHP
PHP 柱状图实现代码
Dec 04 #PHP
Ajax+PHP边学边练 之五 图片处理
Dec 03 #PHP
PHPMyadmin 配置文件详解(配置)
Dec 03 #PHP
又一个php 分页类实现代码
Dec 03 #PHP
You might like
phpmyadmin 3.4 空密码登录的实现方法
2010/05/29 PHP
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
深入extjs与php参数交互的详解
2013/06/25 PHP
PHP屏蔽过滤指定关键字的方法
2014/11/03 PHP
php中current、next与reset函数用法实例
2014/11/17 PHP
php函数实现判断是否移动端访问
2015/03/03 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
js 蒙版进度条(结合图片)
2010/03/10 Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
2013/04/26 Javascript
深入剖析JavaScript中的枚举功能
2014/03/06 Javascript
javascript实用方法总结
2015/02/06 Javascript
JavaScript中继承用法实例分析
2015/05/16 Javascript
javascript实现二级级联菜单的简单制作
2015/11/19 Javascript
JavaScript中的this,call,apply使用及区别详解
2016/01/29 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
vue-resouce设置请求头的三种方法
2017/09/12 Javascript
JS实现的全排列组合算法示例
2017/10/09 Javascript
解决vue-router进行build无法正常显示路由页面的问题
2018/03/06 Javascript
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
JS如何把字符串转换成json
2020/02/21 Javascript
JS中==、===你分清楚了吗
2020/03/04 Javascript
手机浏览器唤起微信分享(JS)
2020/10/11 Javascript
python实现生命游戏的示例代码(Game of Life)
2018/01/24 Python
python路径的写法及目录的获取方式
2019/12/26 Python
解决CSS3的opacity属性带来的层叠顺序问题
2016/05/09 HTML / CSS
Html5上传图片 移动端、PC端通用代码
2016/06/08 HTML / CSS
英国花园药房: The Garden Pharmacy
2017/12/28 全球购物
李维斯法国官网:Levi’s法国
2019/07/13 全球购物
年度考核自我评价
2014/01/25 职场文书
个人自我剖析材料
2014/02/07 职场文书
英语专业求职信
2014/07/08 职场文书
干部对照检查材料范文
2014/08/26 职场文书
民事诉讼代理授权委托书范本
2014/10/08 职场文书
《桂花雨》教学反思
2016/02/19 职场文书
2019年让高校“心动”的自荐信
2019/03/25 职场文书
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python