首页  >  文章  >  后端开发  >  求截取PHP指定字符串代码

求截取PHP指定字符串代码

WBOY
WBOY原创
2016-06-23 14:00:061030浏览

有下面一段html字符串:

aaaa
bbbb
cccc
dddd
 >
要想输出下面内容:
aaaa
dddd
 >
即删除中间两个
前面的内容及
的简易代码,由于还要输出为html,不用数组方式。


回复讨论(解决方案)

$s = '<td align="Center" rowspan="2" width="7%">aaaa<br>bbbb<br>cccc<br>dddd<br></td >';echo preg_replace('/<br>\w+/', '', $s, 2);
<td align="Center" rowspan="2" width="7%">aaaa<br>dddd<br></td >

还有点小问题,单独运行没问题,但上面的表达式实际用到我的字符串时,因为第二段br里含有( ),,最后一段br里含有“-”,截取出来有点问题。
$s = '

aaaa
11(22)
cccc
dd-dd
 >';
截取出来变成了:
$s = 'aaaa(22)
cccc-dd
 >';

$s = '<td align="Center" rowspan="2" width="7%">aaaa<br>11(22)<br>cccc<br>dd-dd<br></td >';echo preg_replace('/<br>[\(\)-\w]+/', '', $s, 2);

补充说明:aaaa、cccc是中文。

补充说明:aaaa、cccc是中文。

$s = '<td align="Center" rowspan="2" width="7%">中文<br>11(22)<br>拼音<br>dd-dd<br></td >';echo preg_replace('/<br>[\x{4e00}-\x{9fa5}\w\(\)-]+/u', '', $s,2) ;//UTF-8编码

谢谢。第一段截取出来的还是错位,还是直接贴我原始的字符吧:

计算机编程
1-9(1,2)
王某
3-307

要想输出两种效果:
1. 计算机编程
3-307

2.计算机编程
1-9
3-307
  第二段只去掉括号及里面内容

1

echo preg_replace('/<br>[^<]+/', '', $s, 2);


2
echo preg_replace('/\(.+?\)/', '', $s);

1

echo preg_replace('/<br>[^<]+/', '', $s, 2);


2
echo preg_replace('/\(.+?\)/', '', $s);


谢谢版主,第一条正确了,第二条的“王某
还在。

echo preg_replace('/<br>[\x{4e00}-\x{9fa5}\w\(\)\-,]+/u', '', $s,2) ;//UTF-8编码

你多了,逗号在【】方括号里面加进去啊

<?php$str = '<td align="Center" rowspan="2" width="7%">aaaa<br>bbbb<br>cccc<br>dddd<br></td >';$arr = explode('<br>', $str);array_splice($arr, 1, 2);echo implode('<br>', $arr);?>

请jordan102帮忙,第二条 echo preg_replace('/\(.+?\)/', '', $s) 还需要截掉“王某
“的部分。

echo preg_replace_callback('/<br>[^<]+/', 'foo', $s, 2); function foo($m){     return strpos($m[0], '(') !== false ? preg_replace('/\(.+?\)/','',$m[0]) : '';	    	 }

谢谢,单独对于一句里面的运行没问题了。但前面还有些语句和空格之类的加上运行就有问题了。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn