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中去除换行解决办法小结(PHP_EOL)
Nov 27 PHP
yii框架中的Url生产问题小结
Jan 16 PHP
php中利用str_pad函数生成数字递增形式的产品编号
Sep 30 PHP
推荐25款php中非常有用的类库
Sep 29 PHP
PHP获取QQ达人QQ信息的方法
Mar 05 PHP
php生成验证码,缩略图及水印图的类分享
Apr 07 PHP
Laravel 5.3 学习笔记之 配置
Aug 28 PHP
php的laravel框架快速集成微信登录的方法
Dec 12 PHP
php使用curl实现简单模拟提交表单功能
May 15 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
May 23 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
May 29 PHP
利用PHP计算有多少小于当前数字的数字方法示例
Aug 26 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
使用zend studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
创建配置文件 用PHP写出自己的BLOG系统 2
2010/04/12 PHP
php5.4传引用时报错问题分析
2016/01/22 PHP
jQuery中用dom操作替代正则表达式
2014/12/29 Javascript
jQuery代码实现表格中点击相应行变色功能
2016/05/09 Javascript
js通过classname来获取元素的方法
2016/11/24 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
微信小程序getPhoneNumber获取用户手机号
2017/09/29 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
layui 表格的属性的显示转换方法
2018/08/14 Javascript
VUE路由动态加载实例代码讲解
2019/08/26 Javascript
layui-table表复选框勾选的所有行数据获取的例子
2019/09/13 Javascript
在Gnumeric下使用Python脚本操作表格的教程
2015/04/14 Python
Python3之文件读写操作的实例讲解
2018/01/23 Python
Python之csv文件从MySQL数据库导入导出的方法
2018/06/21 Python
Python干货:分享Python绘制六种可视化图表
2018/08/27 Python
Python爬虫常用库的安装及其环境配置
2018/09/19 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
Django基础知识 web框架的本质详解
2019/07/18 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
2019/08/13 Python
PyTorch: 梯度下降及反向传播的实例详解
2019/08/20 Python
Python 实现文件读写、坐标寻址、查找替换功能
2019/09/11 Python
精油和天然健康美容产品:Art Naturals
2018/01/27 全球购物
廉价航班、机票和酒店:JustFly
2018/02/07 全球购物
可持续未来的时尚基础:Alternative Apparel
2019/05/06 全球购物
澳大利亚在线购买葡萄酒:The Wine Collective
2020/02/20 全球购物
采购求职信
2014/03/17 职场文书
2014年入党积极分子党校培训心得体会
2014/07/08 职场文书
2014年工会工作总结
2014/11/12 职场文书
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
MySQL触发器的使用
2021/05/24 MySQL
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
2021/06/30 SQL Server
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS
Axios代理配置及封装响应拦截处理方式
2022/04/07 Vue.js