PHP:Foreach循环导致输出有一个我不知道的额外符号';我不想要
htmlPHP:Foreach循环导致输出有一个我不知道的额外符号';我不想要,php,Php,html标记导入两个不同的值。它们应该如下显示:value1:value2。 但它们显示为这样:value1:value2:。 我知道是什么导致了这个问题,但我不知道如何解决它,因为我只是一个PHP初学者 ?php $handle = fopen("text.txt", "a"); foreach($_POST as $variable => $value) { fwrite($handle, $value); fwrite($handle, ":"); } fclose
标记导入两个不同的值。它们应该如下显示:value1:value2
。
但它们显示为这样:value1:value2:
。
我知道是什么导致了这个问题,但我不知道如何解决它,因为我只是一个PHP初学者
?php
$handle = fopen("text.txt", "a");
foreach($_POST as $variable => $value) {
fwrite($handle, $value);
fwrite($handle, ":");
}
fclose($handle);
exit;
?
一种选择是将数据存储在一个数组中,并使用 另一种解决方案是将所有值合并到一个变量中,并使用
trim()
或substr()
去除不需要的符号,然后将变量的值写入文件
此外,检查文件是否成功打开可能是明智的做法,这取决于您对保存的数据所做的操作,以避免XSS攻击。如果您计划回送它,请使用htmlEntes()。一个选项是将数据存储在数组中,并将它们粘在一起 另一种解决方案是将所有值合并到一个变量中,并使用
trim()
或substr()
去除不需要的符号,然后将变量的值写入文件
此外,检查文件是否成功打开可能是明智的,这取决于您对保存的数据所做的操作,以避免XSS攻击。如果您计划回送它,请使用htmlEntes()。在foreach内的每个循环中,您都会添加一个值和冒号。一种选择是在添加值之前添加冒号,而不要在第一次运行时添加冒号。像这样:
<?php
$first = true;
$handle = fopen("text.txt", "a");
foreach($_POST as $variable => $value) {
if(!$first) {
fwrite($handle, ":");
$first = false;
}
fwrite($handle, $value);
fclose($handle);
?>
@xorifelse的内爆解决方案在foreach内的每个循环中都很好,您可以添加一个值和冒号。一种选择是在添加值之前添加冒号,而不要在第一次运行时添加冒号。像这样:
<?php
$first = true;
$handle = fopen("text.txt", "a");
foreach($_POST as $variable => $value) {
if(!$first) {
fwrite($handle, ":");
$first = false;
}
fwrite($handle, $value);
fclose($handle);
?>
@xorifelse的内爆解决方案也不错