<? phpfunction findword($string) {
$trimmedstring = trim($string);
$firstspace = strpos(' ', $trimmedstring);
$frstwrd = substr($trimmedstring, 0, $firstspace);return $frstwrd;
}? >
**< form action = "$_SERVER['PHP_SELF']" method= "post" >**
Word: < input type="text" name="word" /><br />
< input type="submit" name="submit" />
< /form>< ? php
$word = (isset($_POST['word'])) ? $_POST['word'] : '' ;
if ($word) {
echo findword($word);
}
echo findword($word);
?>
Отправленное слово: < ?php echo $word; ?>< br />
Цель этого блока кода в основном состоит в тестировании пользовательской функции «findword ()». Переменная «$ word» устанавливается на «пользовательский ввод» (строка 45) из формы HTML (строки 36–38) и пустую строку «», если в форме еще ничего не было введено. В строке 47, если слово было введено (и это не пустая строка), оно повторяет результат функции с $ word, переданным ей. После этого (строка 50) я передаю функцию с $ word, переданной ей без функции if, и только с переменной в строке 60.
Проблема в том, что даже после того, как значение было введено и передано, ни строка 47, ни строка 50 ничего не делают, в то время как последняя строка делает (а когда значение не было передано, строка 47 выдает следующую ошибку: «Предупреждение: strpos (): пустой разделитель в (путь к файлу) в строке 12 «, что является ошибкой, которую я ожидал от передачи пустой строки функции findword (). Что должно было произойти, так это то, что тестовое значение в формуле if должно было иметь значение false, а затем пропустить тело, но вместо этого вызвал функцию в $ word (которая была пустой строкой) и затем выдал ошибку (как и ожидалось). Что также странно, так это то, что когда я отправляю значение, строка 50 отображает переданное значение как следует, и две предыдущие строки не дают ошибки, но они ничего не отражают.
Выделенная жирным шрифтом строка не совсем то, что была в исходном коде, но мне пришлось изменить ее и большую часть остального кода, чтобы он отображался правильно. Но это должно повлиять на ответ или проблему.
Используйте эту функцию, она вернет первое слово.
function getFirstWord($str) {
$firstWord = '';
if(!empty($str)) {
$wordArr = explode(' ', $str);
$firstWord = $wordArr[0];
}
return $firstWord;
}
Других решений пока нет …