2014-11-04 169 views
0

我想剪切HTML字符串中的每个文本(包括图像),形成一个特定的单词。PHP从HTML字符串中的特定单词剪切文本

例如是这样的字符串:

<?php 
$string = '<div><a href="#"><img src="img.jpg" alt="cut this text form here" />cut this text form here</a></div>'; 
?> 

,这是我想输出

<div> 
<a href="#"> 
    <img src="img.jpg" alt="cut this text" /> 
    cut this text 
</a> 
</div> 

什么$string实际上是一个对象的元素,但我并没有想在这里放太长的代码。 很明显,我不能使用爆炸,因为这会杀死HTML标记。 而且str_replace或substr也不存在,因为在需要剪切的单词之前或之后的长度不是恒定的。

那么我能做些什么来实现这一目标呢?

+0

你应该使用类似[SimpleDOM分析器(http://simplehtmldom.sourceforge.net/) – 2014-11-04 16:39:20

+0

是否总是在特定的属性或元素?如果它只是加载DOM并抓取它。 – Omnikrys 2014-11-04 16:39:42

+0

为什么'str_replace()'不适合你? '回声str_replace函数(“从这里开始”,‘’,$字符串);' – Steve 2014-11-04 16:41:00

回答

0

好的,我解决了我的问题,我只发布我的问题的答案,因为它可以帮助某人。

所以这是我做过什么:

<?php 
$string = '<div><a href="#"><img src="img.jpg" alt="cut this text form here" />cut this text form here</a></div>'; 
$txt_only = strip_tags($string); 
$explode = explode(' from', $txt_only); 
$find_txt = array(' from', $explode[1]); 
$new_str = str_replace($find_txt, '', $string); 
echo $new_str; 
?> 

这可能不是最好的解决办法,但它是快速,不涉及DOM解析。 如果有人想尝试这确保您hrefsrc或粥属性有什么需要是不变没有任何字符的相同的方式和顺序在其他$find_txt它将取代这些呢。

相关问题