За последние 24 часа нас посетили 51343 программиста и 1758 роботов. Сейчас ищут 743 программиста ...

Передача "больших" массивов между php файлами

Тема в разделе "PHP для новичков", создана пользователем Donald, 16 окт 2015.

  1. Donald

    Donald Новичок

    С нами с:
    13 окт 2015
    Сообщения:
    31
    Симпатии:
    0
    Что более приемлемо, если надо передать между скриптами до 1-2 Мб данных?
    Есть пока только две идеи: Серриализация и вставка в POST в скрытое <input> или Сессии.
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну если скрипты локальные то можно и через сессию
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    это вообще от чего возникает? Почему их вообще нужно "передавать"?
     
  4. Donald

    Donald Новичок

    С нами с:
    13 окт 2015
    Сообщения:
    31
    Симпатии:
    0
    В базе есть 100к записей.
    Каждая запись это массив неких полей.
    Редактор базы итмеет опцию выбрать подмножество этого списка записей (это может быть как 1-2-5 записей или 99000) и отредактировать избраные поля кажой записи по типу поиск и замена.

    Суть: в этот интерфейс передаётся POST со списком id редактируемых записей (подмножество id всей базы), а после того как пользователь выберет какие поля из этого подмножества записей редактировать, надо как-то дальше вернуть этот же список на обработку. Я прикинул вес чисто сериализованного списка одних только id и получилось уже 600-800 кбайт.
    Т.е. надо передавать туда-сюда массив из подмножества id..
     
  5. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    А что если просто хранить данные в виде " файла массива ".
    Код (PHP):
    1. <?php return array(
    2. //...
    3. ); 
    И подключать его include или require ?
     
  6. Donald

    Donald Новичок

    С нами с:
    13 окт 2015
    Сообщения:
    31
    Симпатии:
    0
    Немного пошловато, как по мне!
    Вобще для такого случая кошернее будет
    Код (Text):
    1.  
    2. file_put_contents($file_path, serialize($arr));
    3. ...
    4. $arr = unserialize(file_get_contents('$file_path'));
     
  7. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну-ну...
    file_put_contents(...var_export()...) - закинули, $data=require 'file.php' - прочитали. никаких накладных расходов на сериализацию (какой-бы быстрой она не была) плюс кэш опкода если данные многократно используются.
     
  8. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    массив он один на всех пользователей или у каждого свой?
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Зачем редактировать так много сразу?
     
  10. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    кошернее будет автолоад, на все эти файлы массивы.