🐴
это будет лучшая подготовка
Anonymous
ты просто негодуешь или нужна помощь? если второе, то объясни, в чем проблема
Вот значит по порядку. Берем json, при отсутствии индекса просим пользователя ввести ответ. //скрипт- что то вроде минимальной самообучалки Итак, ситуация 1) Индекс есть, все работает чудесно. Ситуация номер 2) Индекса нет, пользователь вводит свой ответ на вопрос, ответ с вопросом летят в json. И тут я уже перестаю что либо понимать
Anonymous
как на скриншоте выше все выходит
Anonymous
т.е. новая пара $key -> $answr заменяет предидушую
Anonymous
а предидушая превращается в .noname файл
Anonymous
http://i.prntscr.com/BAhLZhb1RbyqrzKoeaZslg.png
Petr
Я не совсем понимаю зачем это нужно просто, есть же встроенные функции, зачем изобретать велосипед. Но спасибо за советы и помощь, попробую пописать сортировки
SarcasmIO
посмотреть как ты мыслишь
SarcasmIO
как бы ты решал подобную задачу
Anonymous
вот ублюдский кодик :)
Anonymous
<?php //error_reporting(0); $firstlast = 0; $jsonb = file_get_contents('base.json'); do{ $firstlast++; if($firstlast===1){ echo "Приветствую!Что найти? \n"; } else { echo "Что нибудь еще? \n"; } $line = trim(fgets(STDIN)); //end $data = json_decode($jsonb,true); if ($data[$line] != false && !is_null($data)){ //json выборка echo $data["$line"]; //end } else{ echo 'Упс..Этого я не знаю, если Вы знаете ответ, напишите его(иначе напишите "нет")'; /*$ansr = trim(fgets(STDIN)); if($ansr != 'нет'){ $json_data = array("d"=>"ssd"); file_put_contents('base.json', json_encode($json_data)); }*/ } } while($line != 'нет');
Anonymous
Я просто пытаюсь понять, куда копать когда просплюсь)
Anonymous
Пните в какую сторону этот json раскуривать :))
Anonymous
вот тут соответственно ловим CIN с переменной $line и CIN с переменной $ansr
Anonymous
для тестов ставил прямые
Anonymous
$json_data = array("d"=>"ssd");
Anonymous
вот тута
Anonymous
:( Не чего то я переборшил столько не спать.. Буду признателен если что то подскажите, а я пока пойду отключусь :) Заранее спасибо ❤️
Конторка
Anonymous
на данный момент
Anonymous
{"test":"hyest"}
Anonymous
а так болванка пустая была изначально
Anonymous
как то по другому его организовывать нужно?
Anonymous
не имел до сегодня дела с json просто
Конторка
не имел до сегодня дела с json просто
Тебе просто json распарсить нужно?
🐴
твой код, который пишет в файл, закомментирован
Anonymous
да, я под конец так оставил)
Anonymous
когда уже руки опустились гуглить
Anonymous
и сюда решил спросить
Anonymous
интересует причина, по которой json перезаписывает содержимое
Конторка
и сюда решил спросить
Но ведь есть же json_decode, в чём проблема?
Anonymous
чую что то не так делаю
Anonymous
может по другому болванку надо сторить
🐴
вроде по коду все норм
Anonymous
вот я тоже думаю
Anonymous
сам json файл может же быть пустым изначально?
🐴
php > file_put_contents('my.json', json_encode(['foo' => 'bar'])); php > var_dump(json_decode(file_get_contents('my.json'), true)); php shell code:1: array(1) { 'foo' => string(3) "bar" } php >
Конторка
тогда json_decode() вернет null
$json = file_get_contents("json.txt"); var_dump(json_decode($json));
🐴
php > var_dump(json_decode('')); php shell code:1: NULL php >
Конторка
в json.txt json соответственно
SarcasmIO
в json.txt json соответственно
к чему ты это написал?
Конторка
результат тех двух строк
🐴
результат тех двух строк
ну все правильно вроде
Конторка
к чему ты это написал?
чтобы ты спросил
Конторка
Чую я, проблема там в недосыпе и переутомление, а не в коде 😀
Anonymous
/stat@combot
Combot
combot.org/chat/-1001047863278
Anonymous
/link@yetanotherstatsbot
Yet Another Stats (β)
https://b.yasb.exileed.com/t/phpgeeks
Тенпеннай
ты пришел сюда читать статку и пинать задницы, и теперь у тебя кончилась статка?
Anonymous
А?
Конторка
кончились задницы
Anonymous
Ага
Anonymous
Именно для этого и пришел
Anonymous
Делать же мне нехуй
Anonymous
магия какая то..
Anonymous
может как то обьявлять перенос строки надо при записи в json?
Anonymous
да я уже и на буке проверил на всякий случай
🐴
я все еще не понимаю, в чем у тебя беда. запости код, который не работает. и скажи, почему ты считаешь, что он не работает
🐴
1. вот код 2. делаю вот так 3. вижу такой результат 4. а должен быть вот эдакий
Anonymous
1) <?php //error_reporting(0); $firstlast = 0; $jsonb = file_get_contents('base.json'); do{ $firstlast++; if($firstlast===1){ echo "Приветствую!Что найти? \n"; } else { echo "Что нибудь еще? \n"; } $line = trim(fgets(STDIN)); //тут json пляшет //$json_data = array('abc'=>'ответ'); //file_put_contents($jsonb, json_encode($json_data)); //end $data = json_decode($jsonb,true); if ($data[$line] != false && !is_null($data)){ //json выборка echo $data["$line"]; //end } else{ echo 'Упс..Этого я не знаю, если Вы знаете ответ, напишите его(иначе напишите "нет")'; $ansr = trim(fgets(STDIN)); if($ansr != 'нет' && $line != 'нет'){ $json_data = array("$line"=>"$ansr"); file_put_contents('base.json', json_encode($json_data)); }else{ $line = 'нет'; } } } while($line != 'нет');
Конторка
может как то обьявлять перенос строки надо при записи в json?
Так ты записываешь или читаешь? Тоже не могу понять, в чём проблема.
Anonymous
2)если отсутствует ключ json , пишем новый 3)При записи нового ключа, старый подтерается 4)А должен просто добовляться новый
Anonymous
т.е. вот имеем в json сейчас {"test":"heh"}
Anonymous
при попытке ввести, нас переключит на условие которое запишет дополнительный ключ:ответ
Anonymous
Урашечки :)) А как этого избежать?
🐴
а тебе надо $data[$line] = $answer;
🐴
и далее file_put_contents('base.json', json_encode($data));
Anonymous
а тебе надо $data[$line] = $answer;
вот на счет этого не совсем уловил..
Anonymous
мы же переопределим дату таким образом
Anonymous
она будет равна 2 отловленному CIN
🐴
мы же переопределим дату таким образом
не переопределим, а добавим новый индекс
Anonymous
хм..Интересненько, спасибо пошел пробовать