我对网络编码还很陌生,想在php中进行一些改进,但是我已经陷于困境了:/
我想做的是像这样
“ 西蒙(Simon)喜欢苹果”
现在,我有了名称的输入表单,因此可以选择名称。看起来像是
“ $ name 喜欢苹果”
<table>
<tr>
<td><input type="text" id="name1" name="name1"></td>
<td><input type="submit" id="submit" name="submit" value="Apply"></td>
</tr>
</table>
</div>
<div id="text">
<?php
if(isset($_REQUEST['submit'])) {
$name1 = $_REQUEST['name1'];
echo "$name1 likes apples.";
}
?>
</div>
</form>
到目前为止一切都很好。我输入的任何名称都将替换$ name。现在,我想做的是每当我输入代词(“我”,“你”,“他们”等)时,将“喜欢”更改为“喜欢”。现在,这里是我不知道该怎么办的地方。我当前的代码(无效)如下:
<?php
if(isset($_REQUEST['submit'])) {
$name1 = $_REQUEST['name1'];
if ($name1 = "I", "You") {
$verb = "like";
}
else {
$verb = "likes";
}
echo "$name1 $verb apples";
}
?>
还有没有办法使它对资金不敏感?
答案 0 :(得分:2)
您的代码中几乎没有问题。
单个=
表示将我的变量设置为之后的任何字符串。因此,如果您想查看变量是否等于You
之类的字符串,则必须使用==
,它将返回true或false。
现在我们要说一下我的变量是You
还是I
,将第二个变量更改为like。那就是输出:
if ($name1 == "I" || $name1 == "You") {
$verb = "like";
}
else {
$verb = "likes";
}
所以现在它说如果$name1
等于I OR(||
)$name1
等于You
,则将$verb
更改为like。 / p>
我们将||
用作OR,将&&
用作AND。
如果需要回显变量和字符串,则应使用.
作为变量和字符串之间的分隔。所以会是这样:
echo $name1 . $verb . "apples";
有点像+
,但不是以数学的方式,只是表示加法。
更新
是的。有一种方法可以检查您的字符串是否区分大小写。您必须使用strcasecmp()。
在您的代码中,它应该类似于:
if (strcasecmp($name1,"I") == 0 || strcasecmp($name1,"You") == 0 ) {
$verb = "like";
}
else {
$verb = "likes";
}
答案 1 :(得分:0)
不区分大小写的替换,$lut
表定义了用什么替换。如果您不想随时间更改它,可以将其放在replaceMe
函数中。
代码:
<?php
$lut = [
'like' => [
'I',
'You',
'They',
'We',
],
'likes' => [
'she',
'he',
'it',
'someone',
'somebody',
],
];
function replaceMe(string $name, array $lut) : string
{
foreach ($lut as $key => $value) {
$nameLower = strtolower($name);
$valueLowerArr = array_map(
function($input) {
return strtolower($input);
},
$value
);
if (in_array($nameLower, $valueLowerArr)) {
return strtolower($key);
}
}
return '';
}
$name = 'She';
echo "$name = " . replaceMe($name, $lut) . '<br>' . PHP_EOL;
$name = 'I';
echo "$name = " . replaceMe($name, $lut) . '<br>' . PHP_EOL;
$name = 'iT';
echo "$name = " . replaceMe($name, $lut) . '<br>' . PHP_EOL;
$name = 'TheY';
echo "$name = " . replaceMe($name, $lut) . '<br>' . PHP_EOL;
$name = 'nobody';
echo "$name = " . replaceMe($name, $lut) . '<br>' . PHP_EOL;
给出结果:
She = likes<br>
I = like<br>
iT = likes<br>
TheY = like<br>
nobody = <br>