计算单词并在变量php中插入标记

时间:2011-05-20 13:29:22

标签: php string

我需要一个计算变量中单词内容的函数 例如:

$comments=bla bla bla bla bla bla bla

从4字的第一个单词开始,例如插入此标记:"<!--more-->"  所以在最后我有这个模式的新变量 $comments=bla bla bla bla<!--more-->bla bla bla

有可能吗?

我发现这个appaear工作我希望与你分享

function strpop($str, $word, $num=10)
  {
  if(str_word_count($str,0,'123456789') <= $num)
    return $str." ".$word;

  $tmp = array_keys(str_word_count($str,2, '123456789'));
  for($x=0; $x < sizeof($tmp)-$num; $x+=$num)
    {
    $portion .= substr($str, $tmp[$x], $tmp[($x+$num)]) . $word;
    }
  return $portion;
  }
$string = "$comments";
$word_to_add = "<!--more-->";

$newstr = strpop($string, $word_to_add);

3 个答案:

答案 0 :(得分:2)

$s="This is a very long string, here, actually really really long, or not that much.";
$toinsert="<!--more-->";

$tok=strtok($s, " ");
$s2='';
for ($i=1; $tok!==false; $i++) {
    $s2.=$tok.' '.($i == 4 ? $toinsert : '');
    $tok=strtok(" ");
}

$s2将保留您的新字符串。

PHP strtok()

答案 1 :(得分:1)

   $comments = explode(' ', $comments);
   $counter = 0;
   $out = array();
   foreach($comments as $key => $value) {
       $out[] = $value . ' ';
       if (3 == $key){
           $out[] = '"<!--more-->"';
       }
   }
   $comments = trim(implode('', $out));

答案 2 :(得分:0)

我认为最好的选择是:

1)使用正则表达式提取标记代码(HTML和注释)。

您会看到详细的教程,其中包含有关正则表达式的示例: http://www.roscripts.com/PHP_regular_expressions_examples-136.html

2)提取所有标记代码后,可以进行简单的爆炸。

这就是全部。