PHP непосредственное эхо

При создании HTTP-запроса добавьте Prefer: odata.include-annotations = "*" в свои заголовки HTTP-запроса. Таким образом, ответ будет иметь не только поле _ [Имя поля] _value с идентификатором, но также _ [Имя поля] _value@Microsoft.Dynamics.CRM.lookuplogicalname с логическое имя, которое вы ищете.

Это пример ответа на запрос, запрашивающий parentcustomerid определенного контакта без заголовка:

{
"@odata.context": "https://[Organization URI]/api/data/v9.0/$metadata#contacts(_parentcustomerid_value)",
"value": [
    {
        "_parentcustomerid_value": "bdeb86af-7e1c-e811-a837-000d3ac085f9",
        "contactid": "b050f3bb-dbf7-e811-a98a-000d3ac02bae"
    }
]

}

И это пример ответа для того же запрос с добавленным заголовком:

{
"@odata.context": "https://[Organization URI]/api/data/v9.0/$metadata#contacts(_parentcustomerid_value)",
"value": [
    {
       "_parentcustomerid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "parentcustomerid_account",
        "_parentcustomerid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "account",
        "_parentcustomerid_value": "bdeb86af-7e1c-e811-a837-000d3ac085f9",
        "contactid": "b050f3bb-dbf7-e811-a98a-000d3ac02bae"
    }
]

}

5
задан Anony-Mousse -Reinstate Monica 4 March 2012 в 13:20
поделиться

4 ответа

Вы, вероятно, хотите flush(). Однако PHP может использовать выходную буферизацию. Существует несколько способов, которыми это может изменить вещи, но короче говоря Вы можете flush(), затем ob_flush().

14
ответ дан 18 December 2019 в 05:33
поделиться

Обратите внимание также, что некоторые браузеры не начнут отображать что-либо, пока орган по ответу не будет содержать определенное количество данных - как 256 или 1 024 байта. Я видел приложения, прежде чем те данные клавиатуры с 1 024 символами долго прокомментируют около верхней части страницы, прежде чем они сделают сброс. Это - определенный взлом, но необходимый.

Это относится к Internet Explorer и Safari IIRC.

Так,

  • Если это - первый сброс, удостоверьтесь, что Вы произвели по крайней мере 1 024 байта sofar (не включая HTTP-заголовки).
  • Назовите сброс ()
  • Если можно решить, что там производится, буферизуя на месте, проблема ob_flush ()

Мне нравится просто использовать

while (ob_get_level()) ob_end_flush();

около запуска моего сценария где-нибудь, и затем просто

flush();

каждый раз, когда я хочу сбросить. Это предполагает, что Вы не хотите выходной буферизации вообще, даже если она была настроена перед Вашим сценарием (такой как в PHP.ini или htaccess конфигурации).

4
ответ дан 18 December 2019 в 05:33
поделиться

Можно попытаться использовать сброс () после каждого эха, но даже который не гарантирует запись клиенту в зависимости от веб-сервера, который Вы выполняете.

5
ответ дан 18 December 2019 в 05:33
поделиться

Необходимо смочь использовать что-то вроде этого, чтобы вынудить вывод быть отправленным immeadiately. Поместите его в часть кода, который Вы хотите, чтобы вывод был отправлен.

flush();
ob_flush();
3
ответ дан 18 December 2019 в 05:33
поделиться
Другие вопросы по тегам:

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