PHP在x字后添加标签

时间:2015-10-29 14:08:45

标签: php function

我正在寻找一个php函数,在字符串上的2个第一个单词之后插入span标签,但忽略一些单词。

例如,忽略单词:“One”,“Two”,“Three”......并在2个下一个单词后面添加一个跨度。

build

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

将字符串分解为数组,然后迭代并插入新元素,然后再次加入数组:

<?php
$pos = 1;
$string  = "One example text bla bla bla";
$words = explode(" ", $string);
$new_array = array_slice($words, 0, $pos, true) +
    array($pos => " new word ") +
    array_slice($words, $pos, count($words) - 1, true) ;
print_r($new_array);
$new_string = join(" ",$new_array);
echo $new_string;
?>

答案 1 :(得分:0)

它可能看起来更长,但速度更快,可配置性更强。

好的,所以你必须找到单词分隔符,在这种情况下是空格(“”)。

接下来要找出除数组中的单词之外的第一个单词,例如:(“一个”,“两个”,“三个”,......)。

第三件事是将单词数组合成一些逻辑字符串。

$string2Explode = "One great sentence is simply great."; //Also string
$stringExploded = explode(" ",$string2Explode); //array([0] => "One", [1]=> "great" etc.);
$preventedWords = array("One","Two","Three"); //Add prevented words here
$stringImploded = "";
$found = 0;
$count = 0;
while ($count !== count($stringExploded)) {
 $stringImploded .= $stringExploded[$count];
 if (!in_array($stringExploded[$count],$preventedWords)) {
  $found++;
 }

 $count++;
 if ((count($stringExploded)==$count)&&($found>=2)) {
  $stringImploded .= "</span>";
 } else {
    $stringImploded .= " ";
 }
  if ($found==2) {
   $stringImploded .= "<span>";
 }
}

//StringImploded also output.