我有一个将值传递到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");
答案 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个空合并运算符将点归宿。