我正在寻找一个php函数,在字符串上的2个第一个单词之后插入span标签,但忽略一些单词。
例如,忽略单词:“One”,“Two”,“Three”......并在2个下一个单词后面添加一个跨度。
build
感谢您的帮助
答案 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.