PHP从HTML字符串中的特定单词中剪切文本


PHP cut text from a specific word in an HTML string

我想把HTML字符串中的每一个文本(包括图像alt)都剪切成一个特定的单词。

例如,这是字符串:

<?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实际上是Object的一个元素,但我不想在这里放太长的代码。显然,我不能使用爆炸,因为那样会破坏HTML标记。此外,str_replace或substr是out,因为需要剪切的单词前后的长度不是恒定的。

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

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

这就是我所做的:

<?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或任何需要保持不变的ather属性没有任何字符,其方式和顺序与$find_txt相同,否则它也会替换这些字符。