Reputation: 15378
I need to count words in a sentence. If the offer is less than 3 words, it is not necessary. If the proposal is over 40, you need to prune it. I tried to do, but my way various characters (spaces).
my code:
$inputString = 'This is a sentence, This is a sentence This is a sentence!';
$max = 40;
$min = 3;
$inputString = preg_replace('#\s+#', ' ', $inputString);
$words = explode(' ', $inputString);
if (count($words) >= $min) {
$result = implode(' ', array_slice($words, 0, $max));
} else {
$result = 'bad sentence';
}
echo $result;
what am I doing wrong?
Try again:
"бижутерия бижутерия своими руками бижутерия оптом элитная бижутерия свадебная бижутерия бижутерия интернет магазин бижутерия swarovski интернет магазин бижутерии бижутерия купить фурнитура для бижутерии бижутерия сваровски магазин бижутерии купить бижутерию модная бижутерия стильная бижутерия бижутерия ручной работы мужская бижутерия бижутерия москва бижутерия фото каталог бижутерии итальянская бижутерия украшения бижутерия сваровски бижутерия бижутерия опт дорогая бижутерия бижутерия оптом москва серьги бижутерия авторская бижутерия бижутерия серьги продажа бижутерии муранское стекло бижутерия женская бижутерия недорогая бижутерия красивая бижутерия чешская бижутерия бижутерия кольца ювелирная бижутерия дешевая бижутерия браслеты бижутерия аксессуары бижутерия интернет бижутерия модная бижутерия 2010 diva бижутерия оптовая продажа бижутерии бижутерия 2010 бусы бижутерия интернет магазин бижутерия бижутерия оптом в москве сваровски украшения молодежная бижутерия продажа бижутерии оптом бижутерия для невесты купить бижутерию оптом кольца бижутерия бижутерия браслеты ювелирные украшения французская бижутерия колье бижутерия броши бижутерия бижутерия из бисера бижутерия оптом китай бижутерия купить недорого бижутерия бусы где купить бижутерию эксклюзивная бижутерия дешевая бижутерия оптом куплю бижутерию оптом swarovski бижутерия элитная бижутерия оптом детская бижутерия украшения своими руками бижутерия итальянская бижутерия украина бижутерия украшения бижутерия аксессуары бижутерия из натуральных камней интернет магазин украшений изготовление бижутерии бижутерия купить москва серьги бижутерия жемчуг подставки для бижутерии женави бижутерия золотые украшения украшения из серебра ювелирные изделия бижутерии магазины бижутерии куплю бижутерию бижутерия колье магазины бижутерии в москве браслеты бижутерия дешево оригинальная бижутерия китайская бижутерия оптом серебряные украшения бижутерия женави золото авторские украшения Контактная информация Веб-сайт: http:vk. "
Upvotes: 0
Views: 602
Reputation: 6453
You could use the str_word_count() function. An example from there:
<?php
$str = "Hello fri3nd, you're
looking good today!";
print_r(str_word_count($str, 1));
print_r(str_word_count($str, 2));
print_r(str_word_count($str, 1, 'àáãç3'));
echo str_word_count($str);
?>
Upvotes: 0
Reputation: 1923
You're not doing anything wrong. Your code works as posted. As you stated, sentences of under 40 words work just fine. In your comments you state that you want the sentences truncated at 40 characters. This might help.
$inputString = 'This is a sentence, This is a sentence This is a sentence!';
$max = 40;
$min = 3;
$words = preg_match_all('#\w#', $inputString, $m);
if ($words >= $min) {
$result = (strlen($inputString) <= $max) ? ($inputString) :
(substr($inputString, 0, $max));
} else {
$result = 'bad sentence';
}
echo $result;
Upvotes: 1