获取文本内容的问题(php)

时间:2016-11-02 09:28:07

标签: php text combobox

我实际上正在开发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。

2 个答案:

答案 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函数和关键字是英文的,你应该用英文编码。