За последние 24 часа нас посетил 23591 программист и 1522 робота. Сейчас ищут 811 программистов ...

stream_context_create()

Тема в разделе "PHP для новичков", создана пользователем machetero, 4 мар 2016.

  1. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Объясните что такое контекстные опции, и для чего нужен stream_context_create() ?
     
  2. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    как это зачем, задает настройки для запроса, например какие заголовки отправлять, что за запрос, POST или GET
     
  3. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну ты VLK как-то даже не поверхностно описал что это такое.
    вот есть у тебя поток ввода-вывода. в него по дефолту можно писать байты и читать байты из него. но сами потоки бывают разные. в озу записать страничку, в файлик кинуть на жестком диске, в сетевую карту пакет запихнуть, процессу в дескриптор записать. для настроек "общения" поток нужно настроить, согласно его контексту. например, пост-запрос совсем не обязательно делать к файлу лежащему на локальном жестком диске, но без заголовков авторизации невозможно просто сделать fwrite для записи в файл на фтп/хттп и тому подобном сервисе. вот какие задачи решает контекст потока.
     
  4. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Спасибо Ganzal. Твои развёрнутые ответы всегда приятно читать.
    Вот когда в файлик пишем, это тоже считается, что используется поток вывода ? Просто я думал всегда что у пхп-машины есть тока поток ввода в который пишет сервер, и поток вывода это когда скрипт отработал и пхп передаёт результат(строка). Получается если в скрипте есть запись в файл то помимо вывода обычного(1ый поток) есть ещё второй поток вывода (в файл). Какая то многопоточность у меня получилась ) Я прав ?
     
  5. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    для каждого процесса операционная система создает минимум три дескриптора - ввод-вывод-ошибки. открытие ресурса (файла/процесса/потока) порождает дополнительно необходимое кол-во дескрипторов. для твоего удобства пхп-машина собирает их в общее понятие handler или resource. но идея остается та же - исходящие данные пишутся на стандартный вход, а получение данных идёт из стандартного вывода целевого ресурса.