《PHP从字串中截取一部分,支持使用(*)模糊截取》要点:

本文介绍了PHP从字串中截取一部分,支持使用(*)模糊截取,希望对您有用。如果有疑问,可以联系我们。

有时会有这种需求,就是从一串代码或字符中,根据提供的开始内容和结束内容来截取中间部分。

如果开始和结束内容是固定的,很容易操作,这里不详解。但是如果不是固定的,允许模糊匹配截取,那这里函数就是用于这种需求。

示例代码:$con=<<

示例代码

这是内容标题

内容部分!  维易PHP函数,可以模糊截取一段文字,随意的测试代码,用于测试PHP函数

  • 列表
  • PHP函数
  • 马上测试吧

END;

假如要截取h1下面的span一块,这串代码中,起点可以用,但如果结束部分

,有的是

有的又是其它,也就是说不固定的,那就要用模糊匹配。

PHP代码:$start="

(*)

";  # 或''

$end='

';

echo extract_BoxSplit ($con, $start, $end);

函数extract_BoxSplit:function extract_BoxSplit(  $html ,$startStr, $endStr  )

{

if(stripos ($startStr, '(*)')===false){

$start = stripos ( $html , $startStr);

}else{

$starReg =  preg_quote ($startStr);

$starReg = str_replace ('#','\#',$starReg);

$starReg= str_replace ( ['\(\*\)', '(*)'] ,'.*?', $starReg );

preg_match (  "#{$starReg}#is", $html ,$mStart, PREG_OFFSET_CAPTURE, 0 );

$start= !empty($mStart)  ? $mStart[0][1] : false;

}

if($start===false) {

$error = '没有在内容中发现设置的区块起点代码。';

return false;

}

$start += (stripos ($startStr, '(*)')!==false && !empty($mStart)) ? strlen ($mStart[0][0]) :  strlen( $startStr);

if(stripos ($endStr, '(*)')===false){

$end = stripos (  $html , $endStr , $start);

}else{

$endReg =  preg_quote ($endStr);

$endReg = str_replace ('#','\#',$endReg);

$endReg= str_replace (['\(\*\)', '(*)'],'.*?', $endReg );

preg_match (  "#{$endReg}#is", $html,$mEnd, PREG_OFFSET_CAPTURE, $start );

$end= !empty($mEnd)  ? $mEnd[0][1] : false;

}

if($end===false) {

$error = '没有在内容中发现设置的区块终点代码。';

return false;

}

$str = substr ( $html, $start, $end-$start);

return $str;

}

提取结果:内容部分! 维易PHP函数,可以模糊截取一段文字,随意的测试代码,用于测试PHP函数

php截取剩余部分,PHP从字串中截取一部分,支持使用(*)模糊截取相关推荐

  1. @有两个含义:1,在参数里,以表明该变量为伪参数 ,在本例中下文里将用@name变量代入当前代码中2,在字串中,@的意思就是后面的字串以它原本的含义显示,如果不...

    @有两个含义:1,在参数里,以表明该变量为伪参数 ,在本例中下文里将用@name变量代入当前代码中 2,在字串中,@的意思就是后面的字串以它原本的含义显示,如果不加@那么需要用一些转义符\来显示一些特 ...

  2. (筆記) 如何在字串中從指定字元抓到指定字元(pointer版)?

    Abstract 這是一個實務上常用的功能,可惜在C語言的string.h並沒有提供,本文實作出一個小function達到此功能,並搭配pointer. Introduction 在(筆記) 如何在字 ...

  3. (筆記) 如何在字串中從指定字元抓到指定字元(pointer版)? (C/C++) (C)

    Abstract 這是一個實務上常用的功能,可惜在C語言的string.h並沒有提供,本文實作出一個小function達到此功能,並搭配pointer. Introduction 在(筆記) 如何在字 ...

  4. c语言如何判断当前是 空字符,c语言如何判断字串中没有没有某个字元?

    c语言如何判断字串中没有没有某个字元?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! c语言如何判断字串中没有没有某个字 ...

  5. 求有多少个连续字串中所有的字母都出现了偶数次

    给出一个长度为 n 的字符串(1<=n<=100000),求有多少个连续字串中所有的字母都出现了偶数次. http://acm.upc.edu.cn/problem.php?id=1001 ...

  6. (筆記) 如何在字串中從指定字元抓到指定字元? (C/C++) (C)

    Abstract 這是一個實務上常用的功能,可惜在C語言的string.h並沒有提供,本文實作出一個小function達到此功能. Introduction 比如說一個字串為[10,20],希望從逗號 ...

  7. 04-String——课后作业1:字串加密

    题目:请编写一个程序,加密或解密用户输入的英文字串要求设计思想.程序流程图.源代码.结果截图. 程序设计思想:首先由用户选择是加密还是解密,利用String类中的charAt函数依次取出字串中的字符, ...

  8. c语言中常量单双引号,C语言常量中字元与字串 除了单引号与双引号的区别外,还有什么不同。...

    C语言常量中字元与字串 除了单引号与双引号的区别外,还有什么不同.以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言 ...

  9. Python字串(string)基础与20种常见操作

    多数的程式设计师,处理字串的次数远比数字还要多. 程式设计给人的印象通常是会使用到许多数学,也是不少人对学程式语言感到惧怕的原因. 但其实程式设计的实务上,处理文字字串(string)的频率远比数字高 ...

最新文章

  1. WebApi发送HTML表单数据:文件上传与多部分MIME
  2. ASIC与FPGA能达到的频率差异巨大是为什么
  3. AS3中的序列化与反序列化
  4. CubieBoard开发板数据源介绍
  5. JS中自定义replace可替换特殊符号$等,但无法忽略大小写的函数
  6. JavaScript学习笔记(7)PC端网页特效(略)
  7. php不发送referer,php – 注意:未定义的索引:HTTP_REFERER
  8. 周博磊自述5年研究经历:一个神经元的价值和一个神经病的坚持
  9. Service Worker的应用
  10. Gartner 2021年IaaS+PaaS能力评估:亚马逊云科技排名第一
  11. PyTorch批训练及优化器比较
  12. 2020年ROS机器人操作系统用户官方调查
  13. IEEE论文latex模板
  14. 机器人 迷宫算法_机器人,迷宫和附属建筑
  15. Java面试智力题逻辑题汇总2021
  16. 宝塔面板无法卸载php,宝塔面板如何卸载
  17. MySQL gtid purge_MySQL中set gtid_purged的行为变更及对备份恢复的影响
  18. React-Pdf使用过程心得
  19. FPGA之乒乓Buffer
  20. 职场最高级的聪明是靠谱,到底一个人怎样才算真正靠谱?

热门文章

  1. 修改及查看mysql数据库的字符集
  2. 单用户多角色权限的MSSQL实现
  3. cisco 恢复出厂设置
  4. Algs4-1.1.21打印表格
  5. 前端学习笔记之this——懂不懂由你,反正我是懂了
  6. Java集合,ConcurrentHashMap底层实现和原理(常用于并发编程)
  7. php连接数据库提示could not find driver 问题解决
  8. MySQL数据表的创建、查看、插入
  9. 国庆广州(羊城)之旅
  10. Jakarta Commons:巧用类和组件1