Php 空格将自动替换为下划线
我的输入字段中有以下php代码:Php 空格将自动替换为下划线,php,html,forms,Php,Html,Forms,我的输入字段中有以下php代码: <input type="submit" name='<?php echo $row["date"];?>' value="send"> 为什么,当我张贴这个表单时,空白空间会被一个下划线自动替换,我如何避免它? var\u dump($\u POST): 我怎样才能避免呢 您可以使用str\u replace获得所需的行为: <?php $send = '2015-10-03_19:01:47'; echo str_replac
<input type="submit" name='<?php echo $row["date"];?>' value="send">
为什么,当我张贴这个表单时,空白空间会被一个下划线自动替换,我如何避免它?
var\u dump($\u POST)
:
我怎样才能避免呢
您可以使用str\u replace
获得所需的行为:
<?php
$send = '2015-10-03_19:01:47';
echo str_replace("_"," ",$send);
?>
正如@arkascha在评论中解释的那样 ID和名称标记必须以字母([a-Za-z])开头,后面可以是任意数量的字母、数字([0-9])、连字符(“-”)、下划线(“)、冒号(:”)和句点(“.”) 因此,不可能将空格作为名称。你问过如何避免这个?很简单,就是不要使用日期作为输入的名称。可以使用隐藏的输入字段来保存日期值
<input type="hidden" name='date' value='<?php echo $row["date"];?>'>
<input type="submit" name='submit' value="send">
这是您的浏览器正在修复(无效)代码。输入字段名不能有任意名称。例如,名称中不能有空白。您的浏览器试图为您解决此问题。如果输入的日期是205-10-03 19:01:47
,该怎么办?也许你应该意识到这一点。我认为值是日期而不是名称对吗?是的,我也在考虑使用str_替换作为解决方法。然而,由于我要替换一个特定的字符(即下划线),我一开始并没有特别放在那里,我担心的是,在不同的情况下,不同的浏览器可能会用“u”以外的东西替换不重要的空格,这会使str_替换无效。@user5355646 ah,我正在替换一个特定的字符(即下划线),我并没有把它放在第一位,这是一个有效的问题。我在两个不同的浏览器上测试了它,它运行正常。但谁知道它最终会出现在任何其他浏览器上,使用隐藏的字段会更好<代码>:-)
谢谢!但是您建议使用隐藏字段会带来另一个问题,那就是我想发布所选(=提交)行的日期,但是如果我使用的隐藏字段都具有相同的名称“date”,那么我就得不到所选的值。感谢您的解释,我不知道这一点,奇怪的是,即使你只把数字作为名字(不过,显然不包括空格),它也能起作用。无论如何,您使用隐藏字段的建议带来了一个不同的问题,即我想发布所选(=提交)行的日期,但如果我使用所有具有相同名称“日期”的隐藏字段,则无法获取所选值。
<?php
$send = '2015-10-03_19:01:47';
echo str_replace("_"," ",$send);
?>
2015-10-03 19:01:47
<input type="hidden" name='date' value='<?php echo $row["date"];?>'>
<input type="submit" name='submit' value="send">
<button type="submit" name="submit" value="<?php echo $row["date"]; ?>">Submit</button>