<? php
function 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”设置为HTML表单中的“用户输入”(第45行)(第36-38行),如果表单中尚未输入任何内容,则为空字符串''。在第47行,如果输入了一个单词(并且它不是空字符串),它会传递函数的结果并传递$ word。在那之后(第50行),我在没有if函数的情况下使用$ word传递给函数,而只是第60行的变量。
这样做的问题在于,即使在输入并提交了一个值之后,第47行和第50行都没有做任何事情,而最后一行也没有(当没有提交任何值时,第47行产生以下错误: “警告:strpos():第12行(文件路径)中的空分隔符”这是我将从空字符串传递给findword()所期望的错误。应该发生的是if公式中的测试值应该被评估为false然后跳过正文,而是调用$ word上的函数(这是一个空字符串)然后给出一个错误(正如预期的那样)。什么也是奇怪的是,当我提交一个值时,第50行回应提交的值,并且前面两行没有给出错误,但它们不会回显任何内容。
粗体线不是我在原始代码中所拥有的,但我必须更改它,以及其余大部分代码,以便正确显示。但它应该影响答案或问题。
答案 0 :(得分:0)
使用此功能,它会返回第一个单词。
function getFirstWord($str) {
$firstWord = '';
if(!empty($str)) {
$wordArr = explode(' ', $str);
$firstWord = $wordArr[0];
}
return $firstWord;
}