формы — PHP / HTML пользовательская функция

<? 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 отображает переданное значение как следует, и две предыдущие строки не дают ошибки, но они ничего не отражают.

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

0

Решение

Используйте эту функцию, она вернет первое слово.

function getFirstWord($str) {

$firstWord = '';
if(!empty($str)) {
$wordArr = explode(' ', $str);
$firstWord = $wordArr[0];
}
return $firstWord;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]