在PHP中,这被认为是正确的


In PHP would this be deemed correct?

我已经写了一篇关于我之前遇到的一个问题的文章,但我已经解决了这个问题。就像我的上一篇文章一样,我有一个表单,文本框和一个按钮。我已经完成了所有工作,包括打印原始单词,打印单词中的字符数,打印所有大写字母的单词以及以相反的顺序打印单词。我遇到的唯一问题是尝试获取我输入的任何文本,然后单击按钮以输出以打印单词的第一个字母和打印单词的最后一个字母。我一直在做很多 PHP.net 的搜索,我发现 substr 用于返回我可以使用的字符串的一部分。唯一的问题是当我为它编写代码并尝试执行我的程序时,它会在该特定行上出错。我不是在寻找答案,但有人可以看看我做错了什么,因为我完全理解一切,但这是我唯一挂断的东西。

$first = substr($_POST['entertext']);
echo "The first letter of the word is " . $first. "<br />'n"; 
$last = substr($_POST['entertext']);
echo "The first letter of the word is " . $last. "<br />'n"; 

试试这个:

$first = substr($_POST['entertext'], 0, 1);
echo "The first letter of the word is " . $first. "<br />'n"; 
$last = substr($_POST['entertext'], sizeof($_POST['entertext'])-2, 1);
echo "The first letter of the word is " . $last. "<br />'n"; 

如果您在问题中共享的代码是您正在测试的代码,则您最有可能看到的错误表明substr()需要两个参数:输入字符串和起始位置。

例如,您的"第一个"字符将是:

$first = substr($_POST['entertext'], 0, 1);

在此示例中,有三个参数;第一个是要获取其子字符串的字符串。第二个参数是要开始的字符的索引;可选的第三个参数是"要返回的字符数"。在本例中,我们只对索引 0 处的单个字符感兴趣。

要获取最后一个字符,请执行以下操作:

$last = substr($_POST['entertext'], strlen($_POST['entertext']) - 1, 1);

你也可以采取快捷方式抓取最后一个字符,并将"起始索引"传递为-1

$last = substr($_POST['entertext'], -1);