Php 使用html标记搜索字符串

Php 使用html标记搜索字符串,php,html,strpos,Php,Html,Strpos,我在PHP变量中有html内容,我想用它的标记搜索特定的字符串 假设我的变量是 $var = "<html>Hi.. <strong>how</strong>are <u>you?</u></html> $var=“嗨..你好吗? 现在我想在$var中搜索how,然后它应该返回它的标记,这样我就可以得到how 如何使用PHP实现这一点 如有任何帮助,将不胜感激。使用正则表达式: $search = 'how'; $var

我在PHP变量中有html内容,我想用它的标记搜索特定的字符串

假设我的变量是

$var = "<html>Hi.. <strong>how</strong>are <u>you?</u></html>
$var=“嗨..你好吗?
现在我想在
$var
中搜索how,然后它应该返回它的标记,这样我就可以得到how

如何使用PHP实现这一点

如有任何帮助,将不胜感激。

使用正则表达式:

$search = 'how';
$var = "<html>Hi.. <strong>how</strong>are <u>you?</u></html>";
preg_match_all('/<[^>]+>'.$search.'<\/[^>]+>/',$var,$matches);
$found = $matches[0][0];
echo $found;

是否希望元素包含您的值?可以采用xpath方法:

<?php
$var = "<html>Hi.. <strong>how</strong>are <u>you?</u></html>";
$xml = simplexml_load_string($var);
$elements = $xml->xpath("//*[. = 'how']");
# looking for any value in the tree where the text equals 'how'
# giving back an array of found matches
print_r($elements);
?>

你确定你的问题吗

如果您想知道您的搜索字符串是否在$var中,请尝试此操作

<?php
$var = "<html>Hi.. <strong>how</strong>are <u>you?</u></html>";
$findme = "how";
$pos = strpos($var, $findme);
if($pos === false)
  echo $findme.", Not found.";
else
  echo $findme.", The string found";
?>


有关您搜索的内容以及所需输出的内容?请清除它。您想使用strip_tags()谢谢您的回答!这正是我想要的。假设我的$var=“how…”你好吗?;那么是否可以同时获得how 1.how 2.你好吗?当然,所有匹配都将在
$matches[0]中进行
带有相应键的数组。不,我的意思是说如果“how”没有被任何标记包围,那么它会搜索吗?实际上我想要$var中的“how”,所以一个“how”是简单的how,另一个应该是带有标记的。标记部分由您提供。您能编写正则表达式返回“how”吗?它只是给我how。除了它之外,没有标记我只搜索标签。是的,如果你想检索包含周围标签的搜索字符串,那么你必须使用正则表达式作为更简单的方法来获得更好的输出。你得到了答案,所以请继续。是的,这个答案帮助了我。谢谢你的回答
<?php
$var = "<html>Hi.. <strong>how</strong>are <u>you?</u></html>";
$findme = "how";
$pos = strpos($var, $findme);
if($pos === false)
  echo $findme.", Not found.";
else
  echo $findme.", The string found";
?>