【发布时间】:2015-08-22 05:32:15
【问题描述】:
我想在一个元素之前和之后获取单词,我可以用一个小函数来做,但是如果它以这个元素开始或结束,我会卡住
我的元素:a[id=2] 我的文字:
bla bla bla bla <a id="2">My link</a> blu blu blu
根据这个问题extract part of a string before and after a word 我创建了一个小脚本来获取这样的链接:
$left = substr($tab[0], -10);
$right = substr($right, 1, 10);
$text = "... $left $query $right ...";
它返回:
'... bla bla <a id="2">My link</a> blu blu ...'
但是当我搜索时:
<a id="2">My link</a> bla bla bla bla blu blu blu
or
bla bla bla bla blu blu blu <a id="2">My link</a>
explode() 函数只返回一个数组,因为在分隔符之前/之后没有任何内容...我有错误“未定义偏移量:1”
你有什么解决办法吗?
【问题讨论】:
-
你知道父元素吗?还是每次都不一样?
-
explode()代码?这个答案stackoverflow.com/a/12629211/861704怎么样? -
@splash58 父级每次都不一样
-
@Jigar 和正则表达式我有同样的问题,如果它是在开始或结束 $r = preg_replace('/(.+)?([^\s]+.{0 ,30}'.$node->text().'.{0,30}[^\s]+)(.+)?/', '... $2 ...', $node->saveHTML ());但如果它在中间就可以正常工作......
-
@Samir 在我的回答中我找到了
<a id=2并接受了它的父母。