-2

我正在收集 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 行?

4

7 回答 7

1

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

因此,要输出第 2 行和第 4 行,您可以简单地使用:

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

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

更新

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

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

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

于 2013-08-03T10:18:46.633 回答
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);

使用回显字符串:

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);
于 2013-08-03T10:19:33.747 回答
0

像这样做

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

其中 n 是你的行号。

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

于 2013-08-03T10:18:06.260 回答
0

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

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

// line 1
echo $devices[0];

// line 2
echo $devices[1];

// line 4
echo $devices[3];
于 2013-08-03T10:18:31.517 回答
0

你可以使用拆分:

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

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

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

于 2013-08-03T10:19:14.567 回答
0

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

于 2013-08-03T10:19:58.913 回答
-1

在 php.net 上查找您的语法。这是

$devices = explode(";", "aap;noot;mies");
print_r($devices);
   foreach ($devices as $key => $value) {
     echo "<br>nr.$key=" .  $devices[$key];
   }
于 2013-08-03T10:18:41.183 回答