如何使用php回显文本区域中的特定行

时间:2013-08-03 10:15:21

标签: php html

我正在收集html文本区域数据以在php中回显。我可以使用

选择所有数据
$devices = explode("\n", $_POST['devs']);
foreach($devices as $device)
echo $device;

我可以使用以下方式仅选择第一行:

$first_line = strstr(($_POST['devs']), "\n", true);
echo $first_line;

但是我如何回应特定的线?从文本区域说出第2行或第4行?

7 个答案:

答案 0 :(得分:1)

您的第一个代码段已经通过explode函数创建了一系列行。

因此,要输出第2行和第4行,您只需使用:

$devices = explode("\n", $_POST['devs']);
echo $devices[1];
echo $devices[3];

如果您是PHP的新手(由于您的问题的性质,我猜这是这种情况),应该注意的是,与许多编程语言一样,数组从零开始索引,因此第2行是{{ 3}},第4行是[3]等等。

<强>更新

要访问倒数第二个(即:倒数第二个)行,您可以使用:

echo $devices[count($devices) - 2];

我们在这里做的是获取数组中的元素数量(通过1),然后减去两个以获取第二个最后一个元素。 (因为我们需要减去一个来处理数组从零索引的事实。)

答案 1 :(得分:1)

用法:

getLines(YOUR POST, START LINE, END LINE(optional));

使用返回数组:

function getLines($text, $start, $end = false)
{
    $devices = explode("\n", $text);
    $append  = "My device is ";

    $output = array();
    foreach ($devices as $key => $line)
    {
        if ($key+1 < $start) continue;
        if ($end && $key+1 > $end) break;
        $output[] = $append.$line;
    }
    return $output;
}

$array = getLines($_POST['devs'], 2);
var_dump($array);

使用echo string:

function getLines($text, $start, $end = false)
{
    $devices = explode("\n", $text);
    $append  = "My device is ";

    $output = "";
    foreach ($devices as $key => $line)
    {
        if ($key+1 < $start) continue;
        if ($end && $key+1 > $end) break;
        $output .= $append.$line."<br />";
    }
    return $output;
}

echo getLines($_POST['devs'], 2);

答案 2 :(得分:0)

这样做

$nth_line = explode("\n", $_POST['devs'])[n];

其中n是行号

explode()返回一个数组,然后您可以通过基本数组操作选择每个元素 进一步阅读http://php.net/manual/en/function.explode.php

答案 3 :(得分:0)

因为$devices是爆炸后的数组,所以你可以用它的索引处理每一行。提醒数组是基于零索引的,因此1从0开始。

$devices = explode('\n', $_POST['devs']);

// line 1
echo $devices[0];

// line 2
echo $devices[1];

// line 4
echo $devices[3];

答案 4 :(得分:0)

你可以使用split:

$lines = split("\n", $_POST['devs']);

echo $lines[3];  //4th line

请参阅文档http://php.net/manual/es/function.split.php

答案 5 :(得分:0)

看看PHP中的数组操作。由于$devices是一个数组,您可以按索引选择一个元素,如下所示:第二个元素为$devices[1],第三个元素为$devices[2]等。

答案 6 :(得分:-1)

在php.net上查找语法。它是

$devices = explode(";", "aap;noot;mies");
print_r($devices);
   foreach ($devices as $key => $value) {
     echo "<br>nr.$key=" .  $devices[$key];
   }