Преобразовать фильтр substr из числа символов в число слов - PullRequest
3 голосов
/ 20 июня 2011

Я использую функцию getExcerpt () ниже для динамической установки длины фрагмента текста. Тем не менее, мой метод substr в настоящее время основан на количестве символов. Я хотел бы преобразовать это в подсчет слов. Нужно ли разделять функцию или есть метод PHP, который я могу использовать вместо substr?

function getExcerpt()
{
    //currently this is character count. Need to convert to word count
    $my_excerptLength = 100; 
    $my_postExcerpt = strip_tags(
        substr(
            'This is the post excerpt hard coded for demo purposes',
            0,
            $my_excerptLength 
            )
        );
    return ": <em>".$my_postExcerpt." [...]</em>";}
}

Ответы [ 2 ]

4 голосов
/ 20 июня 2011

Использование str_word_count

В зависимости от параметров он может возвращать количество слов в строке (по умолчанию) или массив найденных слов (если вы хотите использовать только их подмножество).

Итак, чтобы вернуть первые 100 слов фрагмента текста:

function getExcerpt($text)
{
    $words_in_text = str_word_count($text,1);
    $words_to_return = 100;
    $result = array_slice($words_in_text,0,$words_to_return);
    return '<em>'.implode(" ",$result).'</em>';
}
1 голос
/ 06 марта 2015

Если вы хотите, чтобы ваш сценарий не игнорировал точку, запятую и другие знаки пунктуации, вам следует воспользоваться этим подходом.

 function getExcerpt($text)
{
   $my_excerptLength = 100; 
   $my_array = explode(" ",$text);
   $value = implode(" ",array_slice($my_array,0,$my_excerptLength));
   return 

}

Примечание. Это всего лишь пример. Надеюсь, он вам поможет. Не забудьте проголосовать, если вам это поможет.

...