-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProduct.php
108 lines (84 loc) · 2.21 KB
/
Product.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php
class Product
{
private string $file_name;
public function __construct($file_name)
{
$this->file_name = $file_name;
}
public function setFileName($file_name)
{
$this->file_name = $file_name;
}
public function getFileName()
{
return $this->file_name;
}
public function add($product, $price)
{
$data = "$product - $price";
$file = fopen($this->file_name, 'a');
if (filesize($this->file_name) !== 0) {
fwrite($file, " $data");
} else {
fwrite($file, $data);
}
fclose($file);
}
public function updateName($old_name, $new_name)
{
if (!file_exists($this->file_name)) {
echo 'File not found. Please create your file and try again!';
return;
}
$file = fopen($this->file_name, 'r');
if (filesize($this->file_name) !== 0) {
$file_data = fread($file, filesize($this->file_name));
$pos = strpos($file_data, $old_name);
if ($pos !== false) {
for ($i = $pos; $i < strlen($file_data); $i++) {
if ($file_data[$i] == ' ' && $file_data[$i + 1] == '-') {
$new_data = substr($file_data, 0, $pos - 1) . " $new_name " . substr($file_data, $i + 1, strlen($file_data) - $i);
$file = fopen($this->file_name, 'w');
fwrite($file, $new_data);
fclose($file);
return;
}
}
} else {
echo 'Product not found!';
}
} else {
echo 'Product not found!';
}
fclose($file);
}
public function remove($product)
{
if (!file_exists($this->file_name)) {
echo "This file '$this->file_name' not found!";
return;
}
$file = fopen($this->file_name, 'r');
if (filesize($this->file_name) !== 0) {
$file_data = fread($file, filesize($this->file_name));
$pos = strpos($file_data, $product);
if ($pos !== false) {
for ($i = $pos; $i < strlen($file_data); $i++) {
if ($file_data[$i] >= '0' && $file_data[$i] <= '9' && ($file_data[$i + 1] == ' ' || $i === strlen($file_data) - 1)) {
$new_data = substr($file_data, 0, $pos - 1) . substr($file_data, $i + 1, strlen($file_data) - $i);
$file = fopen($this->file_name, 'w');
fwrite($file, $new_data);
fclose($file);
return;
}
}
} else {
echo 'Product not found!';
}
} else {
echo 'Product not found!';
}
fclose($file);
}
}