如何使用preg_match查找html标签?

时间:2016-05-17 18:33:39

标签: php html preg-match

我试图通过查看返回的数据是否包含任何带有php的html标签来使这段代码工作,但它似乎不起作用..

function returnRegflow() 
{
    $data = "<html><body>";
    return $data;


    if(preg_match('html', $data))
    {
        echo 'error';

    } else if(strpos($data, 'regflow') !== false){
        echo $data;
    }
}

echo returnRegflow();

1 个答案:

答案 0 :(得分:0)

一些问题:

  • 您的功能在return之前的if过早退出,因此它永远不会检查标签;
  • preg_match期望第一个参数是正则表达式,因此它在开头和结尾需要一个分隔符(如/);
  • 测试它自己设置的变量的函数有点无用,你应该将它传递给应该测试的字符串:这样它可以用于不同的字符串;
  • 使用echo输出结果不是函数的工作方式。而是以字符串或布尔值的形式返回结果;

你好像在寻找这样的东西:

function returnRegflow($data) {
    if (preg_match('/<\w/', $data)) {
        return 'contains tags';
    }
    if (strpos($data, 'regflow') !== false){
        return $data;
    }
    return 'does not contain "regflow"';
}

echo returnRegflow("<html><body>"); 

对标签的检查非常简陋:它检查文本是否包含<a的任何内容,其中a可以是任何字母。