所以谷歌再一次让我失望(一件罕见的事)。我想要做的是:
我有一个表单,管理员会填写他们填写文本区域的地方,他们将项目符号文本与“;”分开,所以他们会说等等等等。等等等等等等; 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应该与我读过的一样。
答案 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
的用法