Иногда нам нужно проанализировать данные в соответствии с форматом в заголовке, например, загрузить 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.