【发布时间】:2014-05-02 08:50:59
【问题描述】:
我正在尝试在 php 中玩耍,但进展并不顺利。我正在尝试通过 html 中的输入字段更改字符串
HTML 部分
<form action="index2.php" method="POST">
<textarea name="text"><?php echo $search_replace; ?></textarea><br>
search<br><input type="text" name="search"><br>
replace<br><input type="text" name="replace">
<input type="submit">
</form>
php部分
$text = $_POST[text];
$search = $_POST[search];
$replace = $_POST[replace];
$search_replace = str_replace($search, $replace, $text);
这可行,但我想尝试将所有变量放在 for 循环中,只是为了尝试新事物。这就是我最终得到的结果(可能应该使用 foreach):
$field = array('text', 'search', 'replace');
for($i = 0; i > 3; $i++) {
if(isset($_POST[$field[$i]]) &&!empty($_POST[$field[$i]])) {
$field[$i] = $_POST[$field[$i]];
}
}
$search_replace = str_replace($field[1], $field[2], $field[0]);
$field[0] 中仍然有“文本”。 for 循环后的值不应该是 $_POST[$field[0]] 吗?我需要创建单独的数组吗?一个是字段名称,一个是空的,用于存储 $_POST[field[i]]?
【问题讨论】:
-
$i不应该低于 3 而不是高于 3? -
这个循环真的有效吗?
for ($i = 0; i > 3; $i++)真的应该是for ($i =0; $i < 3; $i++)... 带有美元符号和反向不等式。 -
你用 0 声明 $i。然后你说,$i > 3。但是 $i 小于 3。它应该是。 ($i = 0; $i
-
你也忘记了 for 循环中第二个 'i' 的 '$'
-
并且在 php 部分中,您应该用引号将索引名称括起来。