@rinaz22

Как записать в нужную стоку в php?

Всем привет! Хочу засчитать клики по ссылкам. Не хочется для этого использовать БД, поэтому хочу просто записать в текстовый файл(например кол-во кликов 1-ой ссылки записать в первую строку и т.д).
Как можно увеличить цифру на +1 в нужной строчке?
Например: Кликнули по 2-ой рекламе, и цифра во второй строчке должен на +1.
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 3
sim3x
@sim3x
Дописывайте событие в лог, а потом считайте количество записей в файле
Ответ написан
Комментировать
coderisimo
@coderisimo
Наиболее гибкий вариант работать с массивом вида :
[
'link1'=>1,
'link2=>0,
'link3'=>23432
]

здесь у нас название ссылки и кол-во кликов

как это сделать :
вот этой функцией ты пишешь строку в файл file_put_contents() (php.net/manual/fr/function.file-put-contents.php) -

строку которая получается из массива вот этой ф-цией JSON.encode (www.php.net/manual/fr/function.json-encode.php)

когда надо прочесть данные - читаешь строку из файла этим file_get_contents (file_get_contents)
а вот этим преобразуешь ее обратно в массив JSON.decode (www.php.net/manual/fr/function.json-decode.php)

получил массив, изменяй его и сохраняй взад.
можешь написать две свои ф-ции. первая будет извлекать массив из файла, вторая сохранять его туда же.

Или просто юзай БД , это совсем не сложно ))
Ответ написан
Комментировать
@rinaz22 Автор вопроса
Всем спасибо за ответы. Уже нашел решение. Вот:
$line=$_POST['id_rek']; # строка, которую нужно изменить

$file=file("my_file.txt"); 
$open=fopen("my_file.txt","w"); 

   for($i=0;$i<count($file);$i++) 
   { 
      if(($i+1)!=$line){fwrite($open,$file[$i]);} 
      else{fwrite($open,$file[$i]+1 ."\r\n");} 
   } 

fclose($open);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы