Иногда нам нужно проанализировать данные в соответствии с форматом в заголовке, например, загрузить JSON вместо текста. Здесь используется концепция потока ввода | вывода PHP.
PHP предоставляет различные потоки ввода-вывода (IO), которые обеспечивают доступ к потокам ввода-вывода PHP, стандартным дескрипторам ввода-вывода и ошибок, временным потокам файлов, сохраненным в памяти и на диске, и фильтрам, которые могут работать с другими файловыми ресурсами для чтения/записи.
Эта статья посвящена php://ввод. Для получения дополнительной информации, пожалуйста, посетите официальный веб-сайт: Нажмите, чтобы просмотреть официальный веб-сайт.
Php://ввод-это поток только для чтения, который может получить доступ к исходным запрошенным данным. В случае запросов POST лучше всего использовать php://input вместо $HTTP_RAW_POST_DATA, поскольку это не зависит от конкретных инструкций php.ini. Более того, в этом случае $HTTP_RAW_POST_DATA по умолчанию не заполняется, что потенциально требует меньше памяти, чем активация always_populate_raw_post_data. Php://ввод недопустим, когда.
Код моделирования
// server.php switch($_SERVER['CONTENT_TYPE']){ case 'application/json': // Here the data is retrieved from the input side $body = file_get_contents('php://input'); Echo'This is a json:', $body; break; // ... }
// client_web.php, note that Axios is used here // ... service = axios.create({ baseURL: 'mydomain', validateStatus:function(status){ if(500 >= status) alert('server fails'); } }); // Send a request service.post(url, { // ... headers: {'Content-Type':'application/json'}, data:'{"code":100}' // ... }); // The global settings are all right. service.interceptors.request.use(function(config){ // Set the request header here config.headers['Content-Type'] = 'application/json'; return config; }, function(err){});
Расширенное чтение
Ниже приведены официальные стенограммы
Поток ввода | вывода PHP разделен на: php://stdin, php://stdout и php://stderr.
Php://stdin, php://stdout и php://stderr обеспечивают прямой доступ к соответствующим входным или выходным потокам процессов PHP. Поток данных ссылается на дублированный файловый дескриптор, поэтому, если вы откроете php://stdin и отключите его позже, вы просто закроете дубликат, и фактический указанный STDIN останется неизменным. Обратите внимание, что PHP ведет себя таким образом со многими ошибками вплоть до PHP 5.2.1. Рекомендуется просто использовать константы STDIN, STDOUT и STDERR вместо того, чтобы открывать эти пакеты вручную.
Php://stdin доступен только для чтения, php://stdout и php://stderr доступны только для записи.
php://вывод
Php://вывод-это поток данных только для записи, который позволяет выполнять запись в выходной буфер таким же образом, как печать и эхо.
php://fd
Php://fd обеспечивает прямой доступ к указанному файловому дескриптору. Например, php://fd/3 относится к файловому дескриптору 3.
Php://память и php://темп
Php://память и php://temp-это потоки данных, похожие на обертки файлов, которые позволяют считывать и записывать временные данные. Единственное различие между ними заключается в том, что php://память всегда хранит данные в памяти, в то время как php://temp хранит данные во временных файлах, когда объем памяти достигает заданного предела (по умолчанию 2 МБ). Местоположение временного файла определяется так же, как и sys_get_temp_dir().
Ограничением памяти php://temp можно управлять, добавив/maxmemory:NN, который представляет собой максимальный объем данных, сохраняемых в памяти в байтах, и использует временные файлы, когда он превышает.
php://фильтр
Php://фильтр-это мета-инкапсулятор, предназначенный для фильтрации приложений при открытии потоков данных. Это очень полезно для функций файлов “все в одном”, таких как readfile (), file () и file_get_contents (), которые не имеют возможности применять другие фильтры до считывания содержимого потока данных.
Цель php://filter использует следующие параметры в качестве части своего пути. Составные цепочки фильтров могут быть заданы на пути. Подробное использование этих параметров можно найти в конкретных примерах.
Приведенный выше PHP – способ получения основного содержимого HTTP состоит в том, чтобы поделиться всем содержимым с вами, я надеюсь дать вам ссылку, и я надеюсь, что вы будете больше поддерживать developpaer.