我需要在mysql中选择一个字段并将其放在隐藏文本字段中,以便我可以将其选择到另一个文件中。问题是,该字段的名称中包含空格,因此它有点小问题。它是这样的:
$GetArea = $_GET['area'];
然后我将其添加到隐藏的文本框中:
<INPUT id=txtArea type=hidden value=".$GetArea." name=txtArea />
但是当我打开网站时它没有读取该区域,因为区域名称是带有空格的“区域123”。这可能是重复的,但搜索我真的找不到答案。有人知道删除空格的方法吗?
答案 0 :(得分:1)
回答直接询问如何从变量中移除空格:使用正则表达式,
$GetArea = $_GET['area'];
/// = Area 123.
$GetArea = preg_replace("/\s+/","",$_GET['area']);
/// = Area123
查看a regex101 example。正则表达式比使用str_replace
要好得多,因为在一行中它可以处理多个空白生成字符(例如制表符或新换行符)。
但是,如果[在另一种情况下]你想要保留空格并记录它们,你可以用它们替换其他东西,例如_
字符:
$GetArea = $_GET['area'];
/// = Area 123.
$GetArea = preg_replace("/\s+/","_",$_GET['area']);
/// = Area_123
上面的示例意味着当您将数据发送回数据库时,您可以根据需要对替换为空格字符的所有_
字符执行preg_replace
搜索和替换。 (尽管MySQL只在正确包含在反引号中时才接受列名中的空格)。
我还强烈建议您养成将HTML包含在引号中的习惯(通常是单一的),而不是将它们原样挂起,因为这是导致问题的主要原因。所以引用你的HTML:
print "<INPUT id='txtArea' type='hidden' value='".$GetArea."' name='txtArea' />";
/** I made an assumption from your syntax your HTML was being printed by PHP **/
此 表示您可以将空格保留在HTML输入元素的数据值中,因为整个value
部分已定义并明确包含在单个部分中引号。
从更广泛的角度来看,您确实应该考虑不使用$_GET
,而是使用$_POST
进行页面到页面的数据转移。另外,请研究SQL注入以及如何防止它以及跨站点脚本以及如何减轻它。 MySQL列名中的空格是一个要避免的好习惯。
答案 1 :(得分:0)
你应该使用这样的东西:
$str= str_replace(' ', '', $str);