PHP / HTML用户自定义函数

时间:2014-11-13 16:12:13

标签: php forms user-defined-functions

<? 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行回应提交的值,并且前面两行没有给出错误,但它们不会回显任何内容。

粗体线不是我在原始代码中所拥有的,但我必须更改它,以及其余大部分代码,以便正确显示。但它应该影响答案或问题。

1 个答案:

答案 0 :(得分:0)

使用此功能,它会返回第一个单词。

function getFirstWord($str) {

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