使用PHP将字符串剪切为子字符串

时间:2014-07-11 20:06:14

标签: php string

我想在一个字符后剪切一个字符串,然后从该字符串创建许多子字符串。我有一个这样的变量:

$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>

我该怎么做?

5 个答案:

答案 0 :(得分:2)

只需使用explode循环和foreach这样的trim

$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>';

使用htmlspecialcharshtmlentities作为输出是一种很好的做法。特别是在从数据库中呈现数据时。 trim用于消除字符串开头和结尾的不必要空格。

以下是关于explodehtmlspecialcharstrim的工作原理的手册供您参考:

答案 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

中的示例所做的那样,做了一些小改动