写入文件我目前有此块:修改字符串数组和PHP
if ($type == "up") {
$lines_ = file('../indexIncomplete');
$counter = 0;
foreach ($lines_ as $value) {
$postLen = strlen($post);
if (substr($value, 0, $postLen) === $post) {
break;
}
$counter++;
}
list($title, $location, $votes, $poster, $date) = explode("|", $lines_[$counter]);
$votes = $votes + 1;
$newValue = $title.'|'.$location.'|'.$votes.'|'.$poster.'|'.$date;
$lines_[$counter] = $newValue;
file_put_contents('../indexIncomplete', $lines_);
}
这被包含在包含调用它的形式HTML页面(有此块的上方的一些逻辑做验证和东西,我已经缩小了这里的问题)。
我把一个文件的内容拉入数组中。然后我查看数组,看看它们中的一个是否匹配$post
(前面声明的字符串)。如果匹配,循环会中断,计数器将指向包含匹配字符串的数组中的位置。然后我抓住字符串的不同部分(使用explode()
)。我抓住$value
并增加它并重建一个新的数组入口。我用我刚刚在这一行上创建的新数组替换旧数组条目:
$lines_[$counter] = $newValue;
我将新数组写回文件。问题是,当被写入犯规的$newValue
似乎比$votes
拿起任何其他变量等,使它看起来像这样:
||1||
当数票数正确的号码。它应该看起来像这样:
$title|$location|$votes|$poster|$date
此外,它不会出现在它应该的行上。而是将其附加到文件的末尾。我很困惑。
就在'list($ title,...)'行之前,添加'print($ lines _ [$ counter])''。它是否包含正确的信息? – bos
不,它没有。我相信我知道了。看来我不能用'==='在if语句中进行比较。 '=='虽然工作。 – n0pe