Php动态列表来自文本

时间:2013-06-20 15:21:16

标签: php html-lists

所以谷歌再一次让我失望(一件罕见的事)。我想要做的是:

我有一个表单,管理员会填写他们填写文本区域的地方,他们将项目符号文本与“;”分开,所以他们会说等等等等。等等等等等等; blah会产生一个带有3个列表元素的无序列表。这无论如何都是逻辑。问题是试图输出这个列表......这是我到目前为止所做的:

html(如果我可以让它工作,请不要担心生成外部样式表):

    <ul style='list-style:none;'>
       <?php echo $resp3; ?>
    </ul>

php:

    $resp1 = "<li> $resp </li>";
        echo "1 = " . $resp1 . "";
    $resp2 = str_replace('$resp1', ';', ' </li><li> ');
        echo "2 =  " . $resp2 . "";
    $resp3 = substr('$resp2', 0, -4);
        echo "3 =  " . $resp3 . "";

我正在回答测试失败的位置,$resp1显然有效,$resp2输出一个子弹,后面没有任何内容,$resp3为空。我已经尝试了各种各样的事情,看起来$resp3可能无法使用动态变量,但$resp2中的str_replace应该与我读过的一样。

3 个答案:

答案 0 :(得分:1)

为什么不使用爆炸?

$pieces = explode(';',$resp);
foreach($pieces as $piece) {
    $resp3 .= "<li>$piece</li>";
}

或者只使用str_replace一次:

$resp3 = str_replace(';','</li><li>',$resp);
$resp3 = "<li>$resp3</li>";

答案 1 :(得分:1)

这是一个适合您的代码段,只需使用explode()检索由;trim()分隔的每个字符串,以确保每个字符串之前的额外空格不是'回应:

<?php
$textarea = "blah blah; blah blah blah; blah";
$items    = explode(';', $textarea);

echo "<ul>\n";
foreach ($items as $item) {
    echo "\t<li>", trim($item), "</li>\n";
}
echo "</ul>\n";

输出:

<ul>
    <li>blah blah</li>
    <li>blah blah blah</li>
    <li>blah</li>
</ul>

答案 2 :(得分:0)

不要在引号中使用变量!编辑:并检查str_replace

的用法