我正在收集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行?
答案 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
答案 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];
}