php str_replace()不会删除空格

时间:2020-07-25 15:24:13

标签: php

我有一个将值传递到php页面的表单。我必须通过消除空格并添加-或另一个(例如, )来转换字符串。

如果我写VINI E BEVANDE,一切正常。

但是,如果我有$tipopiatto = "VINI E BEVANDE";$tipopiatto = "VINI E BEVANDE";,它不起作用,并且空格仍然存在,那我在哪里错了?

我尝试使用此基本说明并正常工作

 $tipopiatto="VINI E BEVANDE";
 echo str_replace(' ', '-', "$tipopiatto");

...但是如果我尝试使用此代码,则脚本不会删除空白

 $tipopiatto=$_POST['tipopiatto'];
 echo str_replace(' ', '-', "$tipopiatto");

1 个答案:

答案 0 :(得分:0)

虽然有关在 u 参数中使用preg_replace的技巧确实可以奏效,但是当str_replace()更轻并达到期望的结果时,您真的要使用更重的preg_replace()吗?这里的问题看似看似是str_replace(),但实际上,它可能更可能涉及$ _POST变量,需要检查该变量以查看其值是否有效。并且,以防万一可能有问题的输入,我尝试使用htmlspecialchars()消除任何问题。

我在安装程序中在家尝试了以下代码:

<?php
    if(isset($_POST['myBtn']) )
    {
         if ( isset( $_POST['tipopiatto'] ) && ($_POST['tipopiatto'] != null )) {
             $tipopiatto= htmlspecialchars($_POST['tipopiatto']);
             echo str_replace(' ', '-', "$tipopiatto"); 
         }
         else
        {
            exit("Problematic input");
        }
}    
?>
<html>
<head><title>exp button click</title>
</head>

<body bgcolor="#ffffde">
<form method="POST" action="">
<input name="tipopiatto" type="text" value="VINI E BEVANDE">
<button type="submit" name="myBtn" id="myBtn">Submit</button>
</form>
</body>
</html>

用户所需要做的就是删除表单文本输入值,并且在提交表单时str_replace()将无法给出预期的结果。故事的寓意是,在使用$ _POST变量之前,始终需要对其进行检查和验证,否则结果可能令人失望且难以理解。

您可能还希望看到一个live example,它与伪造的POST变量略有不同,但使用PHP的7个空合并运算符将点归宿。

相关问题