За последние 24 часа нас посетили 49840 программистов и 1757 роботов. Сейчас ищут 830 программистов ...

оптимизация php кода

Тема в разделе "Прочие вопросы по PHP", создана пользователем jurastar, 27 июл 2015.

  1. jurastar

    jurastar Новичок

    С нами с:
    27 июл 2015
    Сообщения:
    14
    Симпатии:
    0
    Код (Text):
    1. {"nikname":"baron80_80","battles":22362,"wins":51.97,"global":7485}
    2. {"nikname":"PositiveGame","battles":17718,"wins":58.04,"global":8353}
    3. {"nikname":"dune2004","battles":16507,"wins":51.08,"global":6077}
    4. {"nikname":"LionZT","battles":17608,"wins":50.42,"global":5483}
    5. {"nikname":"streamers","battles":8773,"wins":49.74,"global":4610}
    6. и т.д.
    с долгими мучениями у меня получилось закодировать с помощью json_encode эти данные как нужно...
    но... теперь их необходимо как-то вытянуть и сформировать таблицу..
    Код (PHP):
    1.         $homepage = file_get_contents('data1.txt');    
    2.         $homepage = json_decode($homepage,TRUE);
    3.             foreach($homepage as => $val){
    4.  
    5. echo $val['nikname'];
    6. }
    7. echo $homepage; 
    где ошибка?, почему в цикле ничего не выводится..
     
  2. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    json не валидный у вас )

    Идея такая, вы сформировали строки, всё верно, но забыли собрать из них массив:
    Код (Text):
    1.  
    2. $row = [..тут строка]
    3. $rows[] = $row; // собираем массив из строк в цикле
    4. json_encdoe($rows) // получаем json-представление и его уже сохраняем в файл
    Вот тогда вы сможете пробежаться по нему циклом )

    Должно быт так:
    Код (Text):
    1.  
    2. [{"nikname":"baron80_80","battles":22362,"wins":51.97,"global":7485},
    3. {"nikname":"PositiveGame","battles":17718,"wins":58.04,"global":8353}]
     
  3. jurastar

    jurastar Новичок

    С нами с:
    27 июл 2015
    Сообщения:
    14
    Симпатии:
    0
    я в шоке...
    Код (PHP):
    1. $row = array("nikname" => $val['account_name'], "battles" => $val_battles['battles_count']['value'], "wins" => $val_wins['wins_ratio']['value'], "global" => $val_global['global_rating']['value']);
    2.  
    3. $rows[] = $row;
    4. $d = json_encode($rows);
    5. file_put_contents('data1.json', $d, FILE_APPEND);
    6.  
    ВЫВОДИТ:
    Код (Text):
    1. [{"nikname":"baron80_80","battles":22362,"wins":51.97,"global":7485}][{"nikname":"baron80_80","battles":22362,"wins":51.97,"global":7485},{"nikname":"PositiveGame","battles":17718,"wins":58.04,"global":8353}][{"nikname":"baron80_80","battles":22362,"wins":51.97,"global":7485},{"nikname":"PositiveGame","battles":17718,"wins":58.04,"global":8353},{"nikname":"dune2004","battles":16507,"wins":51.08,"global":6077}][{"nikname":"baron80_80","battles":22362,"wins":51.97,"global":7485},{"nikname":"PositiveGame","battles":17718,"wins":58.04,"global":8353},{"nikname":"dune2004","battles":16507,"wins":51.08,"global":6077},{"nikname":"LionZT","battles":17608,"wins":50.42,"global":5483}][{"nikname":"baron80_80","battles":22362,"wins":51.97,"global":7485},{"nikname":"PositiveGame","battles":17718,"wins":58.04,"global":8353},{"nikname":"dune2004","battles":16507,"wins":51.08,"global":6077},{"nikname":"LionZT","battles":17608,"wins":50.42,"global":5483},{"nikname":"streamers","battles":8776,"wins":49.74,"global":4609}][{"nikname":"baron80_80","battles":22362,"wins":51.97,"global":7485},{"nikname":"PositiveGame","battles":17718,"wins":58.04,"global":8353},{"nikname":"dune2004","battles":16507,"wins":51.08,"global":6077},{"nikname":"LionZT","battles":17608,"wins":50.42,"global":5483},{"nikname":"streamers","battles":8776,"wins":49.74,"global":4609},
    исправте код пожалуйста... ктонибудь... у меня уже мозги закепят...
     
  4. jurastar

    jurastar Новичок

    С нами с:
    27 июл 2015
    Сообщения:
    14
    Симпатии:
    0
    у меня получилось вот так закодировать, все вроде правильно, но от куда взялись "\" (слешы) - ?
    Код (Text):
    1. "[{\"nikname\":\"baron80_80\",\"battles\":22362,\"wins\":51.97,\"global\":7485},{\"nikname\":\"PositiveGame\",\"battles\":17718,\"wins\":58.04,\"global\":8353},{\"nikname\":\"dune2004\",\"battles\":16507,\"wins\":51.08,\"global\":6077},{\"nikname\":\"LionZT\",\"battles\":17608,\"wins\":50.42,\"global\":5483},{\"nikname\":\"streamers\",\"battles\":8776,\"wins\":49.74,\"global\":4609},{\"nikname\":\"Maestro14\",\"battles\":15873,\"wins\":49.74,\"global\":5620},{\"nikname\":\"Daily\",\"battles\":22249,\"wins\":49.27,\"global\":5259},{\"nikname\":\"ADS104\",\"battles\":55300,\"wins\":52.43,\"global\":7278},{\"nikname\":\"Gordey123\",\"battles\":25514,\"wins\":50.16,\"global\":5691}, и т.д.
    Код (PHP):
    1. $row = array("nikname" => $val['account_name'], "battles" => $val_battles['battles_count']['value'], "wins" => $val_wins['wins_ratio']['value'], "global" => $val_global['global_rating']['value']);
    2. $rows[] = $row;
    3. $d = json_encode($rows);
    4. }
    5. file_put_contents('data1.json', json_encode($d, JSON_FORCE_OBJECT), FILE_APPEND);
    соотвецтвенно:
    Код (PHP):
    1. $homepage = file_get_contents('data1.json');    
    2. $json = json_decode($homepage, TRUE);
    3. foreach($homepage as $val){
    4. echo $val['nikname'];
    5. echo $val['battles'];
    6. echo $val['wins'];
    7. echo $val['global'];
    8. }
    9. echo $homepage;
    10.  
    не работает, а вот echo $homepage; выводит весь файл без "\" - ? в чем я опять "плуганул"???