посчитайте слова и вставьте тег в переменную php

#php #string

#php #строка

Вопрос:

мне нужна функция, которая подсчитывает содержимое слов в переменной, например:

$comments=bla bla bla bla bla bla bla

и, начиная с первого слова, например, в 4 слова, вставьте этот тег: "<!--more-->" таким образом, в конечном итоге у меня есть новая переменная в этом режиме $comments=bla bla bla bla<!--more-->bla bla bla

это возможно?

я обнаружил, что это приложение работает, и хочу поделиться с вами

 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);
  

Ответ №1:

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

Ответ №2:

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

Ответ №3:

Я думаю, что лучшим вариантом является:

1) Используйте регулярное выражение для извлечения кода разметки (HTML и комментарии).

Вы видите подробное руководство с примерами о регулярном выражении по адресу:http://www.roscripts.com/PHP_regular_expressions_examples-136.html

2) После извлечения всего кода разметки вы можете выполнить простой анализ.

Вот и все.

Комментарии:

1. ок, фактически не работает, но я новичок, для меня это очень сложно