Прошу прощения, если это очень глупый вопрос или очевидная ошибка новичка, но я так же базовый, как я, я почти никогда не использовал цикл do-while (я знаю - могу не понимаю его сам! Как это возможно, что мне удалось избежать всех этих лет?)PHP условный цикл - длина строки
so: Я хочу выбрать несколько слов с начала текстового абзаца. Я использовал следующий код:
$no_of_char = 70;
$string = $content;
$string = strip_tags(stripslashes($string)); // convert to plaintext
$string = substr($string, 0, strpos(wordwrap($string, $no_of_char), "\n"));
Какой вид работ, но проблема в том, что иногда дает пустые результаты. Я бы подумал, что это потому, что в абзаце содержатся пробелы, пустые строки и/или возврат каретки ... Так что я пытаюсь создать условие цикла, которое будет продолжаться до тех пор, пока длина строки не будет равна X символам. .
$no_of_char = 70; // approximation - how many characters we want
$string = $content;
do {
$string = strip_tags(stripslashes($string)); // plaintext
$string = substr($string, 0, strpos(wordwrap($string, $no_of_char), "\n")); // do not crop words
}
while (strlen($string) > 8); // this would be X - and I am guessing here is my problem
Ну - очевидно, она не работает (в противном случае этот вопрос не будет) - и теперь она всегда ничего не производит (пустая строка)
Спасибо, ваш метод отлично работает. к сожалению, я могу только принять его. +1 :-) –
DUDE. Ваш метод отлично работает. даже лучше, чем решение Колинка. с ним ничего не случилось - но это было намного тяжелее по памяти, а порой даже приурочено к исполнению. Ваш метод как-то был более эффективным. благодаря ! (и .. я узнал новую функцию (str_word_count()) - :-) –