2014-11-04 91 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它將取代這些呢。

相關問題