我实际上正在开发Ubuntu发行版,编码php。
我想读取一个文本文件,然后提取线条,使它们出现在组合框中。
我试图这样做:(我是php新手,温柔:d)
$file = fopen($fichier_txt.'.txt', 'r+');
if ($file)
{
$compteur_lignes = 0;
while (!feof($file) /*&& ($buffer = fgets($file, 4096) !== false)*/)
{
$lignes = fgets($file);
echo '<br>';
echo $lignes;
$compteur_lignes++;
}
echo '<br>';
$lignes = fgets($file);
echo '<select name="cbBox" size="1" id="Combobox">';
$option = "<option value=\"Please select a Category\">Select an option</option> \n";
for ($i = 0; $i < $compteur_lignes; $i++)
{
$option .= "<option ";
$option .= "value=\"$lignes[$i]\">$lignes[$i]</option> \n";
}
echo $option;
echo '</select>';
fclose($file);
}
当我这样做时,我在我的localhost输出中获取了我的文本文件的内容,但我的comboxo显示空字段,就像我的$ lignes [$ i]不包含任何值...
你介意帮我一点:)?
提前致谢,
此致
Stelio Kontos。
答案 0 :(得分:1)
我同意AntonieB的回答,但为了工作,代码需要进行修改。请试试这个:
$file = fopen($fichier_txt.'.txt', 'r+');
if ($file)
{
$lignes = array();
while (!feof($file) /*&& ($buffer = fgets($file, 4096) !== false)*/)
{
$lignes[] = fgets($file);
echo '<br>';
echo end($lignes);
}
$lignes_count = count($lignes);
echo '<select name="cbBox" size="1" id="Combobox">';
$option = "<option value=\"Please select a Category\">Select an option</option> \n";
for ($i = 0; $i < $lignes_count; $i++)
{
$option .= "<option ";
$option .= "value=\"$lignes[$i]\">$lignes[$i]</option> \n";
}
echo $option;
echo '</select>';
fclose($file);
}
我希望它有所帮助
答案 1 :(得分:0)
您没有将$lignes
填充为数组,而是填充为字符串,这意味着它始终只包含最后一行。你应该这样做:
$lignes = array();
while (!feof($file))
{
$lignes[] = fgets($file);
echo '<br>';
echo $lignes[count($lignes) - 1];
$compteur_lignes++;
}
您必须删除循环外的$lignes = fgets($file)
。
顺便说一下,变量$compteur_lignes
没用,你可以使用$lignes
函数随时获取count
数组的大小:
$lines_count = count($lignes);
作为一个略微偏离主题的旁注,我建议用英语而不是法语命名变量。 PHP函数和关键字是英文的,你应该用英文编码。