我想在一个字符后剪切一个字符串,然后从该字符串创建许多子字符串。我有一个这样的变量:
$pizza = "slice 1, slice 2, slice 3, slice 4, slice 5, slice 6";
我希望输出看起来像这样:
<ul>
<li>slice 1</li>
<li>slice 2</li>
<li>slice 3</li>
<li>slice 4</li>
<li>slice 5</li>
<li>slice 6</li>
</ul>
我该怎么做?
答案 0 :(得分:2)
$pizza = "slice 1, slice 2, slice 3, slice 4, slice 5, slice 6";
$slices = explode(',', $pizza);
echo '<ul>';
foreach ($slices as $slice) {
echo '<li>' . trim($slice) . '</li>';
}
echo '</ul>';
它的工作方式是explode
将获取字符串$pizza
并创建一个名为$slices
的切片数组。然后通过foreach
循环,每个$slice
将作为字符串处理。由于字符串中有空格,trim
会将其清理干净,因此每个切片都是干净的。
现在,如果你想获得一点点发烧友,可以像这样使用preg_split
:
$slices = preg_split("/[,]+\s*/", $pizza);
这将通过正则表达式将字符串拆分为数组,该正则表达式基于逗号&amp;空的空间。并且由于它使用额外的空格匹配逗号,因此生成的数组应该已经是干净的&amp;修剪。所以这应该有效:
$pizza = "slice 1, slice 2, slice 3, slice 4, slice 5, slice 6";
$slices = preg_split("/[,]+\s*/", $pizza);
echo '<ul>';
foreach ($slices as $slice) {
echo '<li>' . $slice . '</li>';
}
echo '</ul>';
答案 1 :(得分:1)
试试这个:
$pizza = "slice 1, slice 2, slice 3, slice 4, slice 5, slice 6";
$sliceThatPizza = explode(',',$pizza);
echo '<ul>';
foreach($sliceThatPizza as $slice){
echo '<li>'.htmlspecialchars(trim($slice)).'</li>';
}
echo '</ul>';
使用htmlspecialchars
或htmlentities
作为输出是一种很好的做法。特别是在从数据库中呈现数据时。 trim
用于消除字符串开头和结尾的不必要空格。
以下是关于explode
,htmlspecialchars
和trim
的工作原理的手册供您参考:
答案 2 :(得分:1)
单行:
$pizza = '<ul><li>' . preg_replace('/, /', '</li><li>', $pizza) . '</li></ul>';
答案 3 :(得分:0)
使用explode()函数。
$sliceArray = array();
$sliceArray = explode(',',$pizza);
您可能需要从每个切片字符串中删除多余的空格,在这种情况下,在每个字符串上使用trim():
foreach ($sliceArray as $slice){
$slice = trim($slice);
}
答案 4 :(得分:0)
检查以下内容:
$pizza = "slice 1, slice 2, slice 3, slice 4, slice 5, slice 6";
$slices = explode(",", $pizza);
echo '<ul>';
foreach ($slices as $slice) {
echo "<li>" . trim($slice) . "</li>";
}
echo '</ul>';
正如手册link
中的示例所做的那样,做了一些小改动