Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.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检查textarea的值中是否包含HTML?_Php_Html - Fatal编程技术网

如何使用PHP检查textarea的值中是否包含HTML?

如何使用PHP检查textarea的值中是否包含HTML?,php,html,Php,Html,我目前正在使用jQuery检查textarea中是否包含HTML:(我将继续使用这个) if($('textarea#newMessage').val().match(/尝试以下操作: if(preg_match("/<[^>]*>/", $_POST['textareaname'])){ //contains html tags } else { //dosomething... } if(preg\u match(“/]*>/”,$\u POST['texta

我目前正在使用jQuery检查textarea中是否包含HTML:(我将继续使用这个)

if($('textarea#newMessage').val().match(/尝试以下操作:

if(preg_match("/<[^>]*>/", $_POST['textareaname'])){
   //contains html tags
} else {
   //dosomething...
}
if(preg\u match(“/]*>/”,$\u POST['textareaname'])){
//包含html标记
}否则{
//做某事。。。
}
将preg_match()与您已经得到的正则表达式一起使用。顺便说一句:您可能指的是“允许”,而不是“大声说”;)


请参见

首先,您可以通过
preg\u match

此外,您希望限制HTML以避免更改代码结构中的任何内容。
因此,您可以使用
htmlspecialchars
将HTML打印为纯文本。

但是,如果您确实需要检查,它们是否存在,您可以只检查符号
,这些符号可以通过
preg\u match(“~[]~”,…)
或只检查
strpos

来中断标记。这将捕获标记而不捕获文本

$textareaname=(isset($\u POST['textareaname']))
?$\u POST['textareaname']
: '';
如果($textareaname!==strip_标记($_POST['textareaname']))
{
//包含标签
}
elseif(修剪($textareaname)='')
{
//文本区域为空
}
其他的
{
//好的!做点什么
}
注:

  • 如果发送表单时文本区域中没有任何内容,
    $\u POST['textareaname']
    将不存在,当 你试着用它
  • 如果有人只发送空格
    trim()
    将捕获它

  • 请看一个更简单的表达式是
    /
    ,这会检查文本区域是否为空吗?(我也需要这个)如果是,也谢谢.edited..删除html标记并检查textarea是否为空。这会删除它们吗?如果其中包含html标记,会显示错误吗?为了提高可用性,您可以让PHP自动删除标记,而不是要求用户这样做。另外:
    isset($\u POST['textareaname'])
    将检查文本区域是否为空。请参阅手册中的内容。@Herbet如果有人在某些空格中输入内容,该怎么办?使用
    isset()
    是否会将其视为非空?我一直在试图弄清楚这一点,因为现在我只使用
    if($value=''){
    这允许用户只需键入一个空格,然后发送它,其中没有任何内容。是的,我的意思是“允许”LOL。谢谢。是的,我限制HTML的原因是因为文本区域是一个回复对象,当你回复时,它会被添加到数据库中并发送电子邮件。我不想在电子邮件中添加额外的HTML。(有人可以很容易地用
    标记将JavaScript添加到回复中,然后把事情搞糟)实际上,我更愿意看到错误消息。我接受你的回答,但我更愿意看到错误消息,因为如果他们没有启用JavaScript,他们可能试图绕过我的jQuery检查,这意味着即使使用PHP,它也应该显示错误。但非常感谢你告诉我关于
    trim()
    !!:)另外,我可能不想放弃jQuery方法,因为我将使用AJAX提交表单。@Nathan:根据您的评论,我更新了代码以检查标记和空文本区域,除了空格外没有其他内容。非常感谢!:)变量中的
    和其他内容做了什么?它是
    isset()的一部分吗
    a?b:c
    if(a)b else c
    的快捷方式。有关更好的说明,请参阅手册或
    if(preg_match("/<[^>]*>/", $_POST['textareaname'])){
       //contains html tags
    } else {
       //dosomething...
    }
    
    if ($text != strip_tags($text))
        // text contains html