文档章节

PHP采集利器:根据开始字符串和结束字符串截取需要的采集内容数据,纯PHP函数高性能实现,支持多种

h
 hanbingtel
发布于 2015/06/13 12:06
字数 253
阅读 24
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

function strCutByStr(&$str, $findStart, $findEnd = false, $encoding = 'utf-8'){
        if(is_array($findStart)){
            if(count($findStart) === count($findEnd)){
                foreach($findStart as $k => $v){
                    if(($result = strCutByStr($str, $v, $findEnd[$k], $encoding)) !== false){
                        return $result;
                    }
                }
                return false;
            }else{
                return false;
            }
        }
         
        if(($start = mb_strpos($str, $findStart, 0, $encoding)) === false){
            return false;
        }
         
        $start += mb_strlen($findStart, $encoding);
         
        if($findEnd === false){
            return mb_substr($str, $start, NULL, $encoding);
        }
         
        if(($length = mb_strpos($str, $findEnd, $start, $encoding)) === false){
            return false;
        }
         
        return mb_substr($str, $start, $length - $start, $encoding);
    }

PHP采集利器:根据开始字符串和结束字符串截取需要的采集内容数据,纯PHP函数高性能实现,无正则,效率一流,支持单个截取或者数组形式截取,第一组截取失败,就执行第二套截取方案,以此类推。。。

支持多种字符编码格式!

$str = '1234567890';

var_dump(strCutByStr($str, '2', '9'));//输出 345678
var_dump(strCutByStr($str, array('a', '4'), array('b', '7')));//输出 56,因为第一组匹配没有找到,就执行第二组,以此类推

本文转载自:http://www.oschina.net/code/snippet_1274341_39239

h
粉丝 0
博文 11
码字总数 1992
作品 0
济南
私信 提问
加载中

评论(0)

iconv 中文截断问题的解决方法

iconv 中文截断问题的解决方法 今天做了一个采集程序,原理很简单,使用curl方法把对方页面的html获取分析,然后正则提取需要的数据并保存在数据库。 由于对方页面是GB2312编码,而本地使用的...

蜗牛奔跑
2016/03/08
46
0
跨域、curl、snoopy、file_get_contents()

定义:可以称为”信息采集/模拟登录”技术,可以实现对某个地址做请求,同时按照要求传递get或post参数。 curl本身是php的一个扩展,同时也是一个利用URL语法规定来传输文件和数据的工具,支...

osc_ln5f29as
2019/03/28
12
0
使用PHP相关函数对字符串格式化的方法

通常情况下,网站后台程序在使用用户输入的字符串(一般都是通过HTML表单提交)之前,都必须对这些字符串进行格式化处理,以便使其符合程序运行的标准,防止错误和漏洞的产生。在下面的内容中...

coko
2013/07/16
99
0
PHP 3种方法实现采集网站数据

什么叫采集? 就是使用PHP程序,把其他网站中的信息抓取到我们自己的数据库中、网站中。 PHP制作采集的技术: 从底层的socket到高层的文件操作函数,一共有3种方法可以实现采集。 1. 使用soc...

osc_2r66rowx
2018/06/20
3
0
Vue 源码剖析 —— 模板编译原理

Vue 源码剖析 —— 模板编译原理 什么是模板编译? 日常工作中可能大家或多或少的在 JS 中使用 HTML 渲染模板,特别是在 jQuery 时代,我们可以在模板中方便的使用 JS 表达式甚至是一些指令。...

imyjay
2019/09/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

@Pointcut()的execution、@annotation等参数说明

AOP的基本概念 Advice(通知、切面): 某个连接点所采用的处理逻辑,也就是向连接点注入的代码, AOP在特定的切入点上执行的增强处理。 @Before: 标识一个前置增强方法,相当于BeforeAdvice的...

dean_
30分钟前
13
0
是否finally块总是用Java执行? - Does a finally block always get executed in Java?

问题: Considering this code, can I be absolutely sure that the finally block always executes, no matter what something() is? 考虑到这段代码,我能绝对确定无论something()是final......

技术盛宴
48分钟前
15
0
Wiz — Hyperledger Fabric快速开发工具箱

Wiz工具箱可以快速搭建一个Hyperledger Fabric开发网络作为链码和应用开发环境,官方下载地址:http://sc.hubwiz.com/codebag/fabric-wiz/。 Wiz工具箱的主要特性如下: 内置原生Fabric 1.4 ...

区块链教程
52分钟前
7
0
基于自定义注解和SpringEL表达式的分布式锁实现

需求 1、项目中不可避免的需要使用分布式保证幂等。所以一个简单可靠,易用的工具提上日程。 2、演进过程 最开始使用try finally 块实现。代码臃肿。还要时刻记得释放。 改用回调方式封装锁的...

Lien6o
今天
31
0
前后端分离配置token

解决跨域请求: import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegistry;import org.springframe......

冥焱
今天
25
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部