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正确格式化正文。