Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何检测文本中的HTML标记?_Php_Html_Strpos - Fatal编程技术网

Php 如何检测文本中的HTML标记?

Php 如何检测文本中的HTML标记?,php,html,strpos,Php,Html,Strpos,我想看看$text值是否包含任何HTML格式,因此我可以相应地将PHPMailer电子邮件调整为HTML或纯文本。如果文本被视为HTML,则会松开换行符 $email_body="<p><b>This is html code</b></p>"; $text = htmlentities($email_body); if (strpos($text,"<b>") !== false) { echo " Found a b ";

我想看看
$text
值是否包含任何HTML格式,因此我可以相应地将PHPMailer电子邮件调整为HTML或纯文本。如果文本被视为HTML,则会松开换行符

$email_body="<p><b>This is html code</b></p>";
$text = htmlentities($email_body); 
if (strpos($text,"<b>") !== false) {
    echo " Found a b ";                
}
$email_body=“这是html代码”

”; $text=htmlentities($email\u body); if(strpos($text,“”)!==false){ echo“找到一个b”; }

这并没有发现这一点。

通过或使用regex可以实现这一点,但有一种更简单的方法:使用剥离值,然后将剥离值与非剥离值进行比较

// Set a test array of mixed strings.
$email_body_array = array();
$email_body_array[] = "<p><b>This is html code.</b></p>";
$email_body_array[] = "This is plain text.";
$email_body_array[] = "This is a <b>bold</b> statement..";

// Now roll through the strings & test them.
foreach ($email_body_array as $email_body) {
  $email_body_stripped = strip_tags($email_body);
  $text = htmlentities($email_body); 
  if ($email_body !== $email_body_stripped) {
    echo "That has HTML!<br />";                
  }
  else {
    echo "Boring, plain old text.<br />";                
  }
}
//设置混合字符串的测试数组。
$email_body_array=array();
$email_body_array[]=“这是html代码。

”; $email\u body\u array[]=“这是纯文本。”; $email\u body\u array[]=“这是一个粗体声明…”; //现在滚动字符串并测试它们。 foreach($email\u body\u数组作为$email\u body){ $email\u body\u stripped=带标签($email\u body); $text=htmlentities($email\u body); 如果($email\u body!=$email\u body\u){ echo“有HTML!
”; } 否则{ 呼应“枯燥、简单的旧文本,
”; } }
这是上面的输出,显示了实际的概念:

那有HTML

枯燥、简单的旧文本

那有HTML


我建议你可能是在倒退;而不是生成html然后去掉标签;也许你应该从文本开始,然后根据它是html还是纯文本来构建html。文本来自一个表单,用户可以直接输入文本或html文本。我需要知道它是否包含html代码,以便告诉emailler正确格式化正文。