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

PHP从HTML字符串中的特定单词中剪切文本,php,string,Php,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="#">

我想把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
实际上是一个对象的元素,但我不想在这里放太长的代码。 显然,我不能使用explode,因为这会杀死HTML标记。 而且str_replace或substr也不存在,因为需要剪切的单词前后的长度不是恒定的


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

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

这就是我所做的:

<?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解析。
如果有人想尝试此操作,请确保您的
href
src
或任何其他需要保持不变的属性没有任何字符,其方式和顺序与
$find_txt
中的相同,否则它也会替换这些字符。

您应该使用类似的东西,例如,在某些属性或元素中是否总是使用它?如果只是加载DOM并以这种方式对其进行爬网。为什么
str\u replace()
对您没有用处<代码>echo str_replace('from here',''$string)@Steve,因为我写的文本长度不是恒定的,所以在这里
之后可以有更多的
,stru replace只会在这里替换
表单
,对于其他注释,我不想使用Dom,因为我在同一页上已经有了一个函数,它可以将包含数百个元素的大表单转换为一个数组并具有另一个Dom解析可能会降低页面加载速度