如何在PHP中搜索html标记之间的单词


How can I search for words in between html tags in PHP?

如何在html标记之间搜索单词?假设我有给定的字符串:

<span style="font-weight: bold;">
    <font size="4">Bearings<br /><br /></font>
</span>
<span style="font-weight: bold;">
    <font size="4">
        Scale Drawing &amp; Error in Measurement<br /><br />
    </font>
</span>    
<p align="left" class="MsoNormal" style="text-align: left;">
    <b/>
    <span lang="EN-GB">
        <font size="4" class="Apple-style-span">
            Solving Equations inc. Quadratic Formula
        </font>
    </span>
    </b> 
</p>

我如何搜索标题:方位,比例绘制&测量和求解方程股份有限公司二次公式中的ampl误差?还要记住,标题前后的html标签数量是动态的,这意味着它们可以是任何东西,也可以有任何数量。此外,标题本身也是动态的,我不知道它们到底是什么。我在找他们。然而,我知道它们在字符串的开头,这意味着我可以做一些事情,比如搜索双引号,然后是直角括号">,然后是通配符*,然后是右括号和正斜杠</

"> * </ 

注意,我对regex一无所知,我只是说我可以对类似的东西进行搜索,因为</的第一次出现意味着标题就在它之前。

您可以使用strip_tags从字符串中删除所有HTML,然后搜索文本。

$data = '<h1 class="refname">strip_tags</h1>
<p class="para rdfs-comment">
   This function tries to return a string with all NUL bytes, HTML and PHP tags stripped
   from a given <em><code class="parameter">str</code></em>.  It uses the same tag stripping
   state machine as the <span class="function"><a href="function.fgetss.php" class="function">fgetss()</a></span> function.
  </p>';
print strip_tags($data);

以上将输出

strip_tags

此函数试图返回一个字符串,其中去掉所有NUL字节、HTML和PHP标记
来自给定的str。它使用相同的标签剥离
状态机作为fgetss()函数。

我建议您使用html解析器,例如:http://simplehtmldom.sourceforge.net/否则,在正则表达式中总会漏掉一些case。

您是否尝试在运行时执行此操作?您可以使用javascript和DOMinnerHTML属性。你说HTML是动态的,可能会有所不同,但如果它们总是在标签中,这样的东西可能对你有用。

<script type="text/javascript">
    txt=document.getElementsByTagname("span").innerHTML;
    document.write(txt);
</script>

点击此处查看更多信息:http://www.w3schools.com/htmldom/dom_methods.asp