0

我正在尝试使用 txt 文件中的所有名称创建一个 html 下拉列表。我对读取文本文件中每一行的 PHP 文件进行 AJAX 调用。当我创建这样的字符串时它工作正常:

<?php
...
$repDropdown = '';
while(!feof($file))
  {
  $rep = fgets($file);
  $repDropdown .= '<option value="' . $rep . '">' . $rep . '</option>';
  }
...
echo $repDropdown;
?>

但是,当我创建一个数组(由于各种原因我需要这样做)时,它失败了,我相信它使用了 HTML 字符。我不知道如何解决这个问题。

<?php
$reps = array();
$repDropdown = '<option value=""></option>'; //array();
while(!feof($file))
  {
  $rep = fgets($file);
  $repDropdown .= '<option value="' . $rep . '">' . $rep . '</option>';
  }
  $reps[0] = $repDropdown;
  echo json_encode($reps)
?>
4

2 回答 2

0

在您的 while 循环中,您需要使用 trim($rep) 摆脱换行符。在将其插入数组之前,您还需要使用 htmlentities($repDropdown)。然后要从数组中检索它,您必须使用 html_entity_decode($reps[0]) 反转 htmlentities()。

试试这个代码:

<?php
$reps = array();
$repDropdown = '<select>';

$fp = fopen("test.txt", "r");
while ( $current_line = fgets($fp) ) {
  // do stuff to the current line here
  $current_line = trim($current_line);
  $repDropdown .= '<option value="' . $current_line . '">' . $current_line . '</option>';
}
$repDropdown .= '</select>';
fclose($fp);

$repDropdown = htmlentities($repDropdown);
$reps[] = $repDropdown;
echo json_encode($reps) . '<br />';
echo html_entity_decode($reps[0]);
?>

文档: http:
//php.net/manual/en/function.trim.php
http://php.net/manual/en/function.htmlentities.php
http://us3.php.net/html_entity_decode

于 2013-11-02T08:07:13.873 回答
0

或者你可以使用

$array = "1" , "2" , "3";

foreach($array->item as $reps){
echo '
<option value="' . $reps . '">' . $reps . '</option>';

}

于 2013-11-02T06:59:27.000 回答