如何从提交的表单结果中隐藏PHP分解分隔符?

如何从提交的表单结果中隐藏PHP分解分隔符?,php,forms,explode,delimiter,nl2br,Php,Forms,Explode,Delimiter,Nl2br,我已经创建了一个表单,它利用一个.txt文件从中提取员工的姓名,并使用PHP explode函数在选择表单选项中将其拆分 <select name="FakeName" id="Fake-ID" aria-required="true" required> <option value=""></option> <?php $options=nl2br(file_get_contents("employees.txt")); $optio

我已经创建了一个表单,它利用一个.txt文件从中提取员工的姓名,并使用PHP explode函数在选择表单选项中将其拆分

<select name="FakeName" id="Fake-ID" aria-required="true" required>
 <option value=""></option>
  <?php
   $options=nl2br(file_get_contents("employees.txt"));
   $options=explode("<br />",$options);

   for($i=0;$i<count($options);$i++)
   {
    echo "<option value='".$options[$i]."'>".$options[$i]."</option>";
   }
 ?>
</select>
现在,这在网站上的表单中起作用,并正确地将其分解,看起来一切都很好。但是,当结果提交到电子表格(本例中为谷歌电子表格)时,输出包括中断,因此以类似于以下格式进入电子表格:

Row 1: Name 1
Row 2:
       Name 2
Row 3:
       Name 3
Row 4:
       ETC

我试图找出如何更改代码或其他内容,以便分隔符本身不会作为结果的一部分提交。注意:使用任何分隔符提交。我已经试过了;它会提交结果。

请尝试使用换行符“\r”或“\n”或“\r\n”,而不是使用nl2br添加换行符,然后使用explode删除换行符

<select name="FakeName" id="Fake-ID" aria-required="true" required>

<?php
$options=nl2br(file_get_contents("employees.txt"));
$options=explode("<br />",$options); 
foreach ($options as $item_array)
{
echo "<option value='".$item_array"'>".$item_array"</option>";
 }
?>
</select>
<?php
    $options= file_get_contents("employees.txt");
    $options=explode("\n",$options);        // try \r as well.

    foreach ($options as $singleOption){
        echo "<option value='".$singleOption."'>".$singleOption."</option>";
    }

 ?>

如果问题是由于谷歌电子表格读取换行符造成的,这也可以解决问题。

你可以尝试另一种方法,比如逐行读取文件,而不是处理所有这些nl2br/explode内容

$fh = fopen("employees.txt", "r");
if ($fh) {
    while (($line = fgets($fh)) !== false) {
        $line = trim($line);
        echo "<option value='".$line."'>".$line."</option>";
    }
} else {
    // error opening the file, do something
}
另外,也许只是修剪一下字符串开头/结尾的空白是你们的问题


也许人们只是误解了你将结果提交到电子表格的意思——你是用代码来做的吗?或者从HTML页面复制/粘贴到电子表格中?也许你可以更详细地解释一下。分割文件行的分隔符无论如何都不应显示在输出中,除非由于其他原因出现意外输出。

为什么要分解它,它是html文档吗。通常文本文档将\n或\r@SaravanaKumar因为使用/n或/r或任何其他物理可见的分隔符作为结果进入电子表格。所以我决定使用它,因为它实际上在.txt文件中是看不见的,因为它只是在下一行,因此在结果中似乎是看不见的。直到今天,我才意识到结果实际上出现了断行。你在给电子表格写什么吗?我很困惑。@SaravanaKumar它是一个表单,当它提交到电子表格时,它包含分隔符。选项值中没有分隔符。您不能将它们添加回处理表单的代码中。这就是我们需要看到的代码。尝试了这一点,但不确定它的不同之处,但最终结果都是相同的,电子表格中仍然包含分隔符分隔符。好的,/n似乎不起作用,因为它在表单results中的字符串后添加了一个分隔符…这更好。然后我尝试/r,结果是字符串之前的中断出现了原始问题。然而,第三次是一种魅力,/r/n似乎已经完美地工作了,选项串的两边不再有任何中断。我真的需要更多地学习我的PHP,并理解这一切。谢谢你,很高兴我能帮忙。我认为问题在于/r/n被添加到字段中,结果,Google电子表格看到了这一点,并添加了换行符。其他答案中的一个对我有效,但在某个时候,我必须尝试您列出的内容。另一方面,表单提交过程由谷歌负责。我在他们的系统上创建了一个表单,然后认真地将其编辑成一个网页。因此,表单提交到google表单URL,该URL将响应放在电子表格中。
$fh = fopen("employees.txt", "r");
if ($fh) {
    while (($line = fgets($fh)) !== false) {
        $line = trim($line);
        echo "<option value='".$line."'>".$line."</option>";
    }
} else {
    // error opening the file, do something
}