Я создаю текстовый файл для хранения моих переменных с одной веб-страницы. Когда пользователь нажимает кнопку добавления (например, корзины покупок), данные вводятся в соответствующий текстовый файл на сервере. Мой код приведен ниже:PHP update text file
$file = "../file/".$profile.".txt";
$qty=1;
$file_handle = fopen($file, "rb");
$profileID=mysql_query("SELECT * FROM `profile` WHERE `name`='$profile'",$con);
$profileID = mysql_fetch_row($profileID);
$profileID=$profileID[0];
$current = file_get_contents($file);
//$current.=file_put_contents($file, $profile."\n");
$result="SELECT p.*, pk.*,p.id as PID FROM `pricing` p
JOIN (SELECT `distributor`,MAX(`version`) AS ver FROM `pricing` GROUP BY `distributor`) mx ON mx.ver = p.version AND p.distributor = mx.distributor
JOIN `product_picker` pk ON pk.code = p.code AND pk.profile_name=$profileID AND p.id=$productID";
$result=mysql_query($result);
while($row = mysql_fetch_array($result))
{
$pricingID=$row['PID'];
$code=$row['code'];
$buy=$row['buy'];
$markup=$row['custom markup'];
$sell=$buy*$markup;
$buy="$".number_format((float)$sell,2,'.','');
$stock=explode('.',$row['stock']);
$stock=$stock[0];
}
if (file_exists($file))
{
$count=count(file($file));
while (!feof($file_handle))
{
$line_of_text = fgets($file_handle);
$parts = explode('|', $line_of_text);
$pid=trim($parts[0]);
if($pid==$pricingID)
{
$qty=$qty+1;
}
}
fclose($file_handle);
}
$current.=$pricingID."|".$code.",".$buy.",".$stock."|".$qty."\n";
file_put_contents($file, $current);
Согласно кодексу, формат текстового файла будет:
793|EX-24-AFL,$2425.95,0|1
8078|EX-48-AFL,$3619.35,0|1
866|EX-PWR-320-AC,$303.24,20|1
793|EX-24-AFL,$2425.95,0|2
793|EX-24-AFL,$2425.95,0|3
Первый столбец представляет собой идентификатор (793,8078,866). Приведенный выше код вставляется каждый раз в текстовый файл. Но мне нужно изменить последнее значение (qty), если первый столбец текстового файла уже существует.
Так выходной текстовый файл должен быть
793|EX-24-AFL,$2425.95,0|3
8078|EX-48-AFL,$3619.35,0|1
866|EX-PWR-320-AC,$303.24,20|1
Любой, пожалуйста, помогите мне?
В чем вопрос? – ficuscr
Я хочу изменить последнюю переменную ($ qty) в каждой строке, если есть pricingID (первая переменная в строке) уже существует. В противном случае вставьте новую строку в текстовый файл – NewPHP
Извините. Не видел. Ну, главное, что выпрыгиваете, вы только открываете файл в [режиме записи] (http://php.net/manual/en/function.fopen.php). Не собираюсь обновлять его таким образом. – ficuscr