にファイルへの書き込み、私は現在、このブロックがあります。文字列の配列を変更し、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
書き込まれているdoesntのである、それは次のようになりながら、$votes
以外の変数他を拾うように見える:数は、投票の正しい数である
||1||
。
$title|$location|$votes|$poster|$date
また、それは想定されている行には表示されません。代わりに、ファイルの末尾に追加されます。私は非常に混乱しています。それは一度に複数の書き込みによって破壊されていないので、私は、ファイルをロックするお勧めします、ますfile_put_contents以来
'list($ title、...)'行の直前に 'print($ lines _ [$ counter])'を追加します。それには正しい情報が含まれていますか? – bos
いいえ、それはしませんでした。私はそれを考え出したと信じています。私は '==='を使ってif文を比較することはできないようです。 '=='は動作します。 – n0pe