我创建了一个表单,该表单利用.txt文件从EMPLOYEES中提取名称,并使用PHP爆炸功能在SELECT表单选项中将其分解。
<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>
.txt文件如下所示:
Name 1
Name 2
Name 3
ETC
现在这可以在网站上的形式工作,并正确分解它,一切看起来都很好。但是,当结果提交到SPREADSHEET(在这种情况下是GOOGLE SPREADSHEET)时,输出包含“break”,因此它以类似于以下格式进入电子表格:
Row 1: Name 1
Row 2:
Name 2
Row 3:
Name 3
Row 4:
ETC
我试图弄清楚如何更改代码或某些内容,以便分隔符本身不会作为结果的一部分提交。注意:使用任何分隔符提交。我试过“\”或“;”并提交结果。
答案 0 :(得分:0)
<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>
答案 1 :(得分:0)
不要使用nl2br()添加换行符,然后使用explode()删除换行符,请尝试使用换行符'\ r'或'\ n'或'\ r \ n'。
<?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>";
}
?>
如果问题是由于Google Spreadsheets阅读换行符,这也可以解决问题。
答案 2 :(得分:0)
您可以尝试不同的方法,例如逐行读取文件,而不是处理所有这些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
}
也许只是做一个修剪(从字符串的开头/结尾删除空格)是你的问题?
也许人们只是误解你的意思&#34;将结果提交到电子表格&#34; - 你用代码做这件事吗?或者从HTML页面复制/粘贴到电子表格中?也许你可以更详细地解释一下。分割文件行的分隔符不应该在输出中显示,除非由于某些其他原因而出现意外输出。