PHP 采集程序 常用函数


Posted in PHP onDecember 18, 2008

当前的脚本网址
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的类树(支持无限分类)
Oct 09 PHP
php自动加载的两种实现方法
Jun 21 PHP
PHP 基于文件头的文件类型验证类函数
May 01 PHP
php数组声明、遍历、数组全局变量使用小结
Jun 05 PHP
php 批量生成html,txt文件的实现代码
Jun 26 PHP
PHP实现清除wordpress里恶意代码
Oct 21 PHP
Yii CFileCache 获取不到值的原因分析
Feb 08 PHP
PHP 中常量的知识整理
Apr 14 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
php实现的PDO异常处理操作分析
Dec 27 PHP
PHP使用DOM对XML解析处理操作示例
Jul 04 PHP
php IP及IP段进行访问限制的代码
Dec 17 #PHP
php mssql 数据库分页SQL语句
Dec 16 #PHP
linux下 C语言对 php 扩展
Dec 14 #PHP
php 文件状态缓存带来的问题
Dec 14 #PHP
快速开发一个PHP扩展图文教程
Dec 12 #PHP
PHP Google的translate API代码
Dec 10 #PHP
php escape URL编码
Dec 10 #PHP
You might like
php中的登陆login
2007/01/18 PHP
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
php session应用实例 登录验证
2009/03/16 PHP
自动把纯文本转换成Web页面的php代码
2009/08/27 PHP
如何判断php数组的维度
2013/06/10 PHP
解析linux下安装memcacheq(mcq)全过程笔记
2013/06/27 PHP
php中上传文件的的解决方案
2018/09/25 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
推荐dojo学习笔记
2007/03/24 Javascript
Jquery使用Firefox FireBug插件调试Ajax步骤讲解
2013/12/02 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
jQuery树控件zTree使用方法详解(一)
2017/02/28 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
2017/07/20 Javascript
js弹性势能动画之抛物线运动实例详解
2017/07/27 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
解决vue keep-alive 数据更新的问题
2018/09/21 Javascript
node.js如何操作MySQL数据库
2020/10/29 Javascript
[03:55]2014DOTA2国际邀请赛 Fnatic经理采访赢DK在情理之中
2014/07/10 DOTA
[07:54]DOTA2-DPC中国联赛 正赛 iG vs VG 选手采访
2021/03/11 DOTA
简单介绍Python中的struct模块
2015/04/28 Python
非递归的输出1-N的全排列实例(推荐)
2017/04/11 Python
python3 http提交json参数并获取返回值的方法
2018/12/19 Python
安装不同版本的tensorflow与models方法实现
2021/02/20 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
丝芙兰美国官网:SEPHORA美国
2016/08/03 全球购物
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
应届生人事助理求职信
2013/11/09 职场文书
医药工作岗位求职信分享
2013/12/31 职场文书
求职信结尾怎么写
2014/05/26 职场文书
大学奖学金获奖感言
2014/08/15 职场文书
公司授权委托书样本
2014/09/15 职场文书
2014年社区矫正工作总结
2014/11/18 职场文书
2015年毕业实习工作总结
2015/05/29 职场文书
医院中层管理人员培训心得体会
2016/01/11 职场文书
关于Numpy之repeat、tile的用法总结
2021/06/02 Python