我有以下HTML输出;
<ul>
<li>Test 1</li>
<li>Test 2.</li>
<li>Test 3</li>
<li>Test 4</li>
<li>Test 5</li>
<li>Test 6</li>
<li>Test 7</li>
</ul>
我需要做的是显示相同的HTML,但只有前4个<li>
标签,即
<ul>
<li>Test 1</li>
<li>Test 2.</li>
<li>Test 3</li>
<li>Test 4</li>
</ul>
我可以通过PHP轻松实现这一目标吗?
由于
编辑:
数据来自:
$data = $product->getDescription();
它作为HTML内容存储在数据库中,我目前正在使用上面的代码显示它;
由于
答案 0 :(得分:1)
嗯,是的..
根据数据的来源,我将假设它是某种类型的数据库,你将它放在一个数组()中:
$databasevalue = array(); //stuff from database goes here / dragons
echo "<ul>";
for ( $counter = 0; $counter < 4; $counter ++) {
echo "<li>".$databasevalue[$counter]."</li>";
}
echo "</ul>";
如果没有更好的问题详情,就无法提供更多信息。
答案 1 :(得分:1)
数据是如何产生的?
如果此数据来自数组,您可以使用array_slice函数
对其进行切片$list = array_slice($input, 0, 4); // $list now only having first 4 item.
答案 2 :(得分:1)
<?php
echo '<ul>' . PHP_EOL;
for ($i = 1; $i <= 4; $i++)
{
echo '<li>' . $i . '</li>' . PHP_EOL;
}
echo '<ul>' . PHP_EOL;
?>
输出:
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<ul>
其他人回答好(需要SimpleXMLElement,PHP5),但已被删除:
<?php
$data = '<ul>
<li>Test 1</li>
<li>Test 2.</li>
<li>Test 3</li>
<li>Test 4</li>
<li>Test 5</li>
<li>Test 6</li>
<li>Test 7</li>
</ul>';
$ul = new SimpleXMLElement($data);
$li = $ul->li;
echo '<ul>'.PHP_EOL;
for($i = 0 ; $i < 4 ; $i++)
{
echo '<li>'.$li[$i].'</li>'.PHP_EOL;
}
echo '</ul>'.PHP_EOL;
?>
答案 3 :(得分:0)
如果您正在使用数据库,则应在SQL中使用“LIMIT”,否则array_slice将完成此任务。
不要忘记:文档是你最好的朋友(特别是在php中)