PHP采集利器:根据开始字符串和结束字符串截取需要的采集内容数据

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);
    }

举例:

$str = '1那是一场23我问问4567890维稳';

echo (strCutByStr($str, '那是', '稳'));//输出 一场23我问问4567890维
时间: 2024-10-16 05:54:12

PHP采集利器:根据开始字符串和结束字符串截取需要的采集内容数据的相关文章

截取开始字符串 结束字符串的中间字符串并返回

/// <summary> /// 指定开始字符串和结束字符串,截取中间的字符 /// </summary> /// <param name="str">要截取的字符串</param> /// <param name="s">开始字符串</param> /// <param name="e">结束字符串</param> /// <returns&

JS 从一个字符串中截取两个字符串之间的字符串

/************************************************* 函数说明:从一个字符串中截取 两个字符串之间的字符串 参数说明:src_str 原串, start_str_loc开始查找的字符串, start_str起始字符串 end_str结束字符串 dep :两个字符串之间的字符串 /************************************************/ function analysysRespParam(src_str,s

网页采集利器 phpQuery

网页采集利器 phpQuery 2012-02-28 11:43:24|  分类: php|举报|字号 订阅 在网页采集的时候,通常都会用到正则表达式.但是有时候对于正则不太好的同学,比如我,那就杯具了..如今google的项目里有个phpQuery , 顾名思义query,完全类似于jquery的语法,但这是服务器端的,总体来说就是可以用php来直接采集对应的网页内容了,真的是太方便了,  它让一切变得可能...... phpQuery is a server-side, chainable,

C# GetValueList 获得字符串中开始和结束字符串中间得值列表

/// <summary> /// 获得字符串中开始和结束字符串中间得值列表 /// </summary> /// <param name="styleContent">样式内容</param> /// <returns></returns> private MatchCollection GetValueList(string str, string s, string e) { return Regex.Mat

获得字符串中开始和结束字符串中间得值

1 /// <summary> 2 /// 获得字符串中开始和结束字符串中间得值 3 /// </summary> 4 /// <param name="str">字符串</param> 5 /// <param name="s">开始</param> 6 /// <param name="e">结束</param> 7 /// <returns

字符串-02. 删除字符串中的子串(20)

输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2. 输入格式: 输入在2行中分别给出不超过80个字符长度的.以回车结束的2个非空字符串,对应S1和S2. 输出格式: 在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串. 输入样例: Tomcat is a male ccatat cat 输出样例: Tom is a male import java.util.Scanner; public class Main { public static

HTML网页内容转换成字符串(删除从指定字符串到指定字符串)

背景: 最近遇到个小需求就是将下面字符串去掉无用字符串 <br><br>"你爷爷也喜欢吃鱼嘛."<br><br>我笑了起来,"哪有猫不喜欢吃鱼的?"<br><br>猫嘀咕了一声.<br><br>"它说什么?"<br><br>"它说你怎么还钓不到,肚子都等饿了."<br><br>我瞥了猫

node中转换URL字符串与查询字符串

一个完整的URL字符串中,从"?"(不包括?)到"#"(如果存在#)或者到该URL字符串结束(如果不存在#)的这一部分称为查询字符串. 可以使用Query String模块中的parse方法将该字符串转换为一个对象,parse方法的使用方式如下所示: querystring.parse(str,[sep],[eq],[options]); str表示被转换的查询字符串, sep.字符串中的分隔符,默认是& eq.该字符串中的分配符,默认为=."=&

C# 支持两种形式的字符串:规则字符串和逐字字符串(@字符串)

规则字符串由包含在双引号中的零个或多个字符组成(如 "hello"),并且可以包含简单转义序列(如表示制表符的 \t).十六进制转义序列和 Unicode 转义序列. 逐字字符串由 @ 字符后跟开始的双引号字符.零个或多个字符以及结束的双引号字符组成.一个简单的示例就是 @"hello".在逐字字符串中,分隔符之间的字符逐字解释,唯一的例外是"引号转义序列".具体说来,在逐字字符串中不处理简单转义序列以及十六进制 和 Unicode 转义序列.逐