Php curl exec: PHP: curl_exec — Manual

Как я могу запустить curl как командную строку оболочки в PHP

спросил

Изменено
4 года, 10 месяцев назад

Просмотрено
51к раз

Если я попытаюсь запустить это внутри скрипта:

 
 

я получаю:

 -bash-3.2$ php test.php
sh: /curl: нет такого файла или каталога
 

с использованием shell_exec:

 Предупреждение PHP: shell_exec(): невозможно выполнить с использованием обратных кавычек в безопасном режиме...
 

Как запустить curl как командную строку оболочки?

Эти ошибки происходят в Linux, на моем Mac все работает.

  • php
  • завиток

5

Проблема в том, что PHP безопасный режим включен и для запуска лучше использовать полный путь cURL (спасибо ghostJago и amosrivera). Запуск сценария с помощью следующей команды устранил проблему:

 php -dsafe_mode=Off test.php
 

Я не хочу менять php.ini , но это тоже может быть решением.

shell_exec говорит о проблеме с безопасным режимом, но exec просто сообщает вам неправильное сообщение, надеюсь, я пробовал как exec , так и shell_exec .

Отключить безопасный режим в файле php.ini. Также проверьте, установлен ли у вас curl.

 безопасный_режим = Выкл.
 

0

Чтобы преобразовать команду bash (например, вы можете скопировать из chrome-dev-tools) в php, взгляните на это: https://incarnate.github.io/curl-to-php/

в командной строке, сделать это:

 который завиток
 

Это даст вам абсолютный путь к программе curl.

Затем дважды проверьте, что safe_mode = Off находится в вашем php.ini.

Когда вы это сделаете, измените свой код на:

  google.com") ?>
 

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.

Требуется помощь при вызове команды оболочки в PHP

. Значение должно быть логическим для следующих значений параметра option:
Option Установите значение Notes
CURLOPT_AUTOREFERER TRUE для автоматической установки поля Referer: в запросах, где оно следует за Location: redirect .
CURLOPT_BINARYTRANSFER TRUE для возврата исходного вывода при использовании CURLOPT_RETURNTRANSFER.
CURLOPT_COOKIESESSION TRUE, чтобы пометить это как новый сеанс cookie. Это заставит libcurl игнорировать все куки-файлы, которые он собирается загрузить, которые являются «сеансовыми куки-файлами» из предыдущего сеанса. По умолчанию libcurl всегда сохраняет и загружает все файлы cookie, независимо от того, являются ли они сеансовыми файлами cookie или нет. Сессионные куки-файлы — это куки-файлы без срока действия, и они должны быть активны и существовать только для этого «сеанса».
CURLOPT_CERTINFO TRUE для вывода информации о сертификации SSL в STDERR при защищенных передачах. Доступно с PHP 5.3.2. Требуется, чтобы CURLOPT_VERBOSE был включен, чтобы иметь эффект.
CURLOPT_CRLF TRUE для преобразования новых строк Unix в новые строки CRLF при передаче.
CURLOPT_DNS_USE_GLOBAL_CACHE TRUE для использования глобального кэша DNS. Этот параметр не является потокобезопасным и включен по умолчанию.
CURLOPT_FAILONERROR TRUE для автоматического отказа, если возвращаемый HTTP-код больше или равен 400. По умолчанию страница возвращается в обычном режиме, игнорируя код.
CURLOPT_FILETIME TRUE, чтобы попытаться получить дату модификации удаленного документа. Это значение можно получить с помощью параметра CURLINFO_FILETIME функции curl_getinfo().
CURLOPT_FOLLOWLOCATION TRUE, чтобы следовать за любым заголовком «Location:», который сервер отправляет как часть заголовка HTTP (обратите внимание, что это рекурсивно, PHP будет следовать столько заголовков «Location:», которые были отправлены, если только не установлено значение CURLOPT_MAXREDIRS).
CURLOPT_FORBID_REUSE TRUE, чтобы принудительно закрыть соединение после завершения обработки и не объединять его для повторного использования.
CURLOPT_FRESH_CONNECT TRUE, чтобы принудительно использовать новое соединение вместо кэшированного.
CURLOPT_FTP_USE_EPRT TRUE для использования EPRT (и LPRT) при активных загрузках по FTP. Используйте FALSE, чтобы отключить EPRT и LPRT и использовать только PORT.
CURLOPT_FTP_USE_EPSV TRUE, чтобы сначала попробовать команду EPSV для FTP-передачи, прежде чем вернуться к PASV. Установите значение FALSE, чтобы отключить EPSV.
CURLOPT_FTPAPPEND TRUE для добавления к удаленному файлу вместо его перезаписи.
CURLOPT_FTPASCII Псевдоним CURLOPT_TRANSFERTEXT. Используйте это вместо этого.
CURLOPT_FTPLISTONLY TRUE, чтобы отображались только имена каталогов FTP.
CURLOPT_HEADER TRUE, чтобы включить заголовок в вывод.
CURLINFO_HEADER_OUT TRUE для отслеживания строки запроса дескриптора. Доступно с PHP 5.1.3. Префикс CURLINFO_ является преднамеренным.
CURLOPT_HTTPGET TRUE, чтобы сбросить метод HTTP-запроса на GET. Поскольку GET используется по умолчанию, это необходимо только в том случае, если метод запроса был изменен.
CURLOPT_HTTPPROXYTUNNEL TRUE для туннелирования через заданный HTTP-прокси.
CURLOPT_MUTE TRUE, чтобы полностью отключить функции cURL.
CURLOPT_NETRC TRUE для сканирования файла ~/.netrc для поиска имени пользователя и пароля для удаленного сайта, с которым устанавливается соединение.
CURLOPT_NOBODY TRUE, чтобы исключить тело из вывода. Затем для метода запроса устанавливается значение HEAD. Изменение этого параметра на FALSE не меняет его на GET.
CURLOPT_NOPROGRESS

TRUE, чтобы отключить индикатор выполнения для передач cURL.

Примечание:

PHP автоматически устанавливает для этого параметра значение TRUE, его следует изменять только в целях отладки.

CURLOPT_NOSIGNAL TRUE, чтобы игнорировать любую функцию cURL, которая вызывает отправку сигнала процессу PHP. Это включено по умолчанию в многопоточных SAPI, поэтому можно использовать параметры тайм-аута. Добавлено в cURL 7.10.
CURLOPT_POST TRUE для выполнения обычного HTTP POST. Этот POST является обычным типом application/x-www-form-urlencoded, наиболее часто используемым HTML-формами.
CURLOPT_PUT TRUE для HTTP PUT файла. Файл для PUT должен быть установлен с CURLOPT_INFILE и CURLOPT_INFILESIZE.
CURLOPT_RETURNTRANSFER TRUE, чтобы вернуть передачу в виде строки возвращаемого значения curl_exec() вместо вывода ее напрямую.
CURLOPT_SSL_VERIFYPEER FALSE, чтобы запретить cURL проверять сертификат узла. Альтернативные сертификаты для проверки можно указать с помощью параметра CURLOPT_CAINFO, или каталог сертификатов можно указать с помощью параметра CURLOPT_CAPATH. CURLOPT_SSL_VERIFYHOST также может быть TRUE или FALSE, если CURLOPT_SSL_VERIFYPEER отключен (по умолчанию 2). TRUE по умолчанию с cURL 7.10. Пакет по умолчанию, установленный с cURL 7.10.
CURLOPT_TRANSFERTEXT TRUE, чтобы использовать режим ASCII для передачи по FTP. Для LDAP он извлекает данные в виде обычного текста вместо HTML. В системах Windows он не установит STDOUT в двоичный режим.
CURLOPT_UNRESTRICTED_AUTH TRUE, чтобы продолжать отправлять имя пользователя и пароль при отслеживании местоположений (используя CURLOPT_FOLLOWLOCATION), даже если имя хоста изменилось.
CURLOPT_UPLOAD TRUE для подготовки к загрузке.
CURLOPT_VERBOSE TRUE для вывода подробной информации. Записывает выходные данные в STDERR или в файл, указанный с помощью CURLOPT_STDERR.

значение должно быть целым числом для следующих значений параметра option:
Option Установить значение Notes
CURLOPT_BUFFERSIZE Размер буфера, используемый для каждого чтения. Однако нет никакой гарантии, что этот запрос будет выполнен. Добавлено в cURL 7.10.
CURLCLOPT_CLOSEPOLICY Либо CURLCLOSEPOLICY_LEAST_RECENTLY_USED, либо CURLCLOSEPOLICY_OLDEST. Есть еще три константы CURLCLOSEPOLICY_, но cURL пока их не поддерживает.
CURLOPT_CONNECTTIMEOUT Количество секунд ожидания при попытке подключения. Используйте 0, чтобы ждать бесконечно.
CURLOPT_CONNECTTIMEOUT_MS Количество миллисекунд ожидания при попытке подключения. Используйте 0, чтобы ждать бесконечно. Если libcurl построен для использования стандартного преобразователя имен системы, эта часть соединения по-прежнему будет использовать разрешение в полные секунды для тайм-аутов с минимальным допустимым тайм-аутом в одну секунду. Добавлено в cURL 7.16.2. Доступно с PHP 5.2.3.
CURLOPT_DNS_CACHE_TIMEOUT Количество секунд, в течение которых записи DNS хранятся в памяти. По умолчанию для этого параметра установлено значение 120 (2 минуты).
CURLOPT_FTPSSLAUTH Метод аутентификации FTP (при активации): CURLFTPAUTH_SSL (сначала попробуйте SSL), CURLFTPAUTH_TLS (сначала попробуйте TLS) или CURLFTPAUTH_DEFAULT (пусть решит cURL). Добавлено в cURL 7.12.2.
CURLOPT_HTTP_VERSION CURL_HTTP_VERSION_NONE (по умолчанию позволяет CURL решать, какую версию использовать), CURL_HTTP_VERSION_1_0 (принудительно HTTP/1.0) или CURL_HTTP_VERSION_1_1 (принудительно HTTP/1.1).
CURLOPT_HTTPAUTH

Используемые методы аутентификации HTTP. Возможные варианты: CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, CURLAUTH_NTLM, CURLAUTH_ANY и CURLAUTH_ANYSAFE.

Побитовый | (или) оператор может использоваться для объединения более чем одного метода. Если это будет сделано, cURL будет опрашивать сервер, чтобы узнать, какие методы он поддерживает, и выбрать лучший из них.

CURLAUTH_ANY — это псевдоним для CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

CURLAUTH_ANYSAFE — это псевдоним для CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

CURLOPT_INFILESIZE Ожидаемый размер файла в байтах при загрузке файла на удаленный сайт. Обратите внимание, что использование этой опции не остановит libcurl от отправки дополнительных данных, поскольку именно то, что отправляется, зависит от CURLOPT_READFUNCTION.
CURLOPT_LOW_SPEED_LIMIT Скорость передачи в байтах в секунду, ниже которой передача должна быть в течение отсчета секунд CURLOPT_LOW_SPEED_TIME, прежде чем PHP сочтет передачу слишком медленной и прервет ее.
CURLOPT_LOW_SPEED_TIME Количество секунд, в течение которых скорость передачи должна быть ниже CURLOPT_LOW_SPEED_LIMIT, прежде чем PHP сочтет передачу слишком медленной и прервет ее.
CURLOPT_MAXCONNECTS Максимально разрешенное количество постоянных подключений. Когда предел достигнут, CURLOPT_CLOSEPOLICY используется для определения того, какое соединение закрыть.
CURLOPT_MAXREDIRS Максимальное количество HTTP-перенаправлений. Используйте эту опцию вместе с CURLOPT_FOLLOWLOCATION.
CURLOPT_PORT Альтернативный номер порта для подключения.
CURLOPT_PROTOCOLS

Битовая маска значений CURLPROTO_*. Если эта битовая маска используется, она ограничивает протоколы, которые libcurl может использовать при передаче. Это позволяет вам создать libcurl для поддержки широкого спектра протоколов, но при этом ограничивать определенные передачи, чтобы можно было использовать только их подмножество. По умолчанию libcurl принимает все поддерживаемые протоколы. См. также CURLOPT_REDIR_PROTOCOLS.

Допустимые параметры протокола: CURLPROTO_HTTP, CURLPROTO_HTTPS, CURLPROTO_FTP, CURLPROTO_FTPS, CURLPROTO_SCP, CURLPROTO_SFTP, CURLPROTO_TELNET, CURLPROTO_LDAP, CURLPROTO_LDAPS, CURLPROTO_DICT, CURLPROTO_FILE, CU RLPROTO_TFTP, CURLPROTO_ALL
Добавлено в cURL 7. 19.4.
CURLOPT_PROXYAUTH Методы HTTP-аутентификации, используемые для прокси-соединения. Используйте те же битовые маски, что и в CURLOPT_HTTPAUTH. Для проверки подлинности прокси в настоящее время поддерживаются только CURLAUTH_BASIC и CURLAUTH_NTLM. Добавлено в cURL 7.10.7.
CURLOPT_PROXYPORT Номер порта прокси для подключения. Этот номер порта также можно установить в CURLOPT_PROXY.
CURLOPT_PROXYTYPE Либо CURLPROXY_HTTP (по умолчанию), либо CURLPROXY_SOCKS5. Добавлено в cURL 7.10.
CURLOPT_REDIR_PROTOCOLS Битовая маска значений CURLPROTO_*. Если эта битовая маска используется, она ограничивает протоколы, которые libcurl может использовать при передаче, за которой следует перенаправление, когда CURLOPT_FOLLOWLOCATION включен. Это позволяет вам ограничить определенные передачи, чтобы разрешить использовать только подмножество протоколов в перенаправлениях. По умолчанию libcurl разрешает все протоколы, кроме FILE и SCP. Это отличие от версий до 7.19.4, которые безоговорочно следуют всем поддерживаемым протоколам. См. также CURLOPT_PROTOCOLS для значений констант протокола. Добавлено в cURL 7.19.4.
CURLOPT_RESUME_FROM Смещение в байтах, с которого возобновляется передача.
CURLOPT_SSL_VERIFYHOST 1, чтобы проверить наличие общего имени в сертификате узла SSL. 2, чтобы проверить наличие общего имени, а также убедиться, что оно соответствует предоставленному имени хоста.
CURLOPT_SSLVERSION Используемая версия SSL (2 или 3). По умолчанию PHP попытается определить это самостоятельно, хотя в некоторых случаях это необходимо установить вручную.
CURLOPT_TIMECONDITION Как обрабатывается CURLOPT_TIMEVALUE. Используйте CURL_TIMECOND_IFMODSINCE, чтобы вернуть страницу, только если она была изменена с момента, указанного в CURLOPT_TIMEVALUE. Если он не был изменен, будет возвращен заголовок «304 Not Modified», если CURLOPT_HEADER имеет значение TRUE. Используйте CURL_TIMECOND_IFUNMODSINCE для обратного эффекта. CURL_TIMECOND_IFMODSINCE — значение по умолчанию.
CURLOPT_TIMEOUT Максимальное количество секунд, в течение которого могут выполняться функции cURL.
CURLOPT_TIMEOUT_MS Максимальное количество миллисекунд, в течение которого могут выполняться функции cURL. Если libcurl построен для использования стандартного преобразователя имен системы, эта часть соединения по-прежнему будет использовать разрешение в полные секунды для тайм-аутов с минимальным допустимым тайм-аутом в одну секунду. Добавлено в cURL 7.16.2. Доступно с PHP 5.2.3.
CURLOPT_TIMEVALUE Время в секундах с 1 января 1970 года. Время будет использоваться CURLOPT_TIMECONDITION. По умолчанию используется CURL_TIMECOND_IFMODSINCE.

значение должно быть строкой для следующих значений параметра option:
Option Установить значение Notes
CURLOPT_CAINFO Имя файла, содержащего один или несколько сертификатов для проверки узла. Это имеет смысл только при использовании в сочетании с CURLOPT_SSL_VERIFYPEER. Требуется абсолютный путь.
CURLOPT_CAPATH Каталог, содержащий несколько сертификатов ЦС. Используйте эту опцию вместе с CURLOPT_SSL_VERIFYPEER.
CURLOPT_COOKIE Содержимое заголовка «Cookie:», которое будет использоваться в HTTP-запросе. Обратите внимание, что несколько файлов cookie разделяются точкой с запятой, за которой следует пробел (например, «фрукт = яблоко; цвет = красный»)
CURLOPT_COOKIEFILE Имя файла, содержащего данные cookie. Файл cookie может быть в формате Netscape или просто заголовки в стиле HTTP, сброшенные в файл.
CURLOPT_COOKIEJAR Имя файла для сохранения всех внутренних файлов cookie при закрытии дескриптора, например. после вызова curl_close.
CURLOPT_CUSTOMREQUEST

Пользовательский метод запроса для использования вместо «GET» или «HEAD» при выполнении HTTP-запроса. Это полезно для выполнения «DELETE» или других, более непонятных HTTP-запросов. Допустимыми значениями являются такие вещи, как «GET», «POST», «CONNECT» и т. д.; т. е. не вводите здесь целую строку HTTP-запроса. Например, ввод «GET /index.html HTTP/1.0\r\n\r\n» будет неправильным.

Примечание:

Не делайте этого, предварительно не убедившись, что сервер поддерживает пользовательский метод запроса.

CURLOPT_EGDSOCKET Аналогично CURLOPT_RANDOM_FILE, за исключением имени файла для сокета Entropy Gathering Daemon.
CURLOPT_ENCODING Содержимое заголовка «Accept-Encoding:». Это позволяет декодировать ответ. Поддерживаемые кодировки: «identity», «deflate» и «gzip». Если задана пустая строка «», отправляется заголовок, содержащий все поддерживаемые типы кодирования. Добавлено в cURL 7.10.
CURLOPT_FTPPORT Значение, которое будет использоваться для получения IP-адреса, используемого для инструкции FTP «POST». Инструкция «POST» указывает удаленному серверу подключиться к указанному нами IP-адресу. Строка может быть простым IP-адресом, именем хоста, именем сетевого интерфейса (в Unix) или просто ‘-‘ для использования системного IP-адреса по умолчанию.
CURLOPT_INTERFACE Имя используемого исходящего сетевого интерфейса. Это может быть имя интерфейса, IP-адрес или имя хоста.
CURLOPT_KRB4LEVEL Уровень безопасности KRB4 (Kerberos 4). Любое из следующих значений (в порядке от наименьшего к наибольшему) допустимо: «очистить», «безопасно», «конфиденциально», «лично». . Если строка не соответствует ни одному из них, используется «частное». Установка для этого параметра значения NULL отключит защиту KRB4. В настоящее время безопасность KRB4 работает только с FTP-транзакциями.
CURLOPT_POSTFIELDS Полные данные для публикации в операции HTTP «POST». Чтобы опубликовать файл, добавьте к имени файла символ @ и укажите полный путь. Тип файла можно указать явно, указав после имени файла тип в формате ‘;type=mimetype’. Этот параметр может быть передан либо в виде строки с URL-адресом, например «para1=val1&para2=val2&…», либо в виде массива с именем поля в качестве ключа и данными поля в качестве значения. Если значение является массивом, для заголовка Content-Type будет задано значение multipart/form-data. Начиная с PHP 5.2.0, файлы, которые передаются этой опции с префиксом @, для работы должны быть в форме массива.
CURLOPT_PROXY Прокси-сервер HTTP для туннелирования запросов.
CURLOPT_PROXYUSERPWD Имя пользователя и пароль в формате «[имя пользователя]:[пароль]» для подключения к прокси-серверу.
CURLOPT_RANDOM_FILE Имя файла, которое будет использоваться для заполнения генератора случайных чисел для SSL.
CURLOPT_RANGE Диапазон(ы) данных для извлечения в формате «X-Y», где X или Y являются необязательными. Передачи HTTP также поддерживают несколько интервалов, разделенных запятыми в формате «X-Y,N-M».
CURLOPT_REFERER Содержимое заголовка «Referer:» для использования в HTTP-запросе.
CURLOPT_SSL_CIPHER_LIST Список шифров, используемых для SSL. Например, RC4-SHA и TLSv1 являются допустимыми списками шифров.
CURLOPT_SSLCERT Имя файла, содержащего сертификат в формате PEM.
CURLOPT_SSLCERTPASSWD Пароль, необходимый для использования сертификата CURLOPT_SSLCERT.
CURLOPT_SSLCERTTYPE Формат сертификата. Поддерживаемые форматы: «PEM» (по умолчанию), «DER» и «ENG». Добавлено в cURL 7.9.3.
CURLOPT_SSLENGINE Идентификатор механизма шифрования закрытого ключа SSL, указанного в CURLOPT_SSLKEY.
CURLOPT_SSLENGINE_DEFAULT Идентификатор механизма шифрования, используемого для операций асимметричного шифрования.
CURLOPT_SSLKEY Имя файла, содержащего закрытый ключ SSL.
CURLOPT_SSLKEYPASSWD

Секретный пароль, необходимый для использования закрытого ключа SSL, указанного в CURLOPT_SSLKEY.

Примечание:

Поскольку этот параметр содержит конфиденциальный пароль, не забудьте сохранить PHP-скрипт, который он содержит, в безопасном месте.

CURLOPT_SSLKEYTYPE Тип ключа закрытого ключа SSL, указанный в CURLOPT_SSLKEY. Поддерживаемые типы ключей: «PEM» (по умолчанию), «DER» и «ENG».
CURLOPT_URL URL для извлечения. Это также можно установить при инициализации сеанса с помощью curl_init().
CURLOPT_USERAGENT Содержимое заголовка «User-Agent:», которое будет использоваться в HTTP-запросе.
CURLOPT_USERPWD Имя пользователя и пароль в формате «[имя пользователя]:[пароль]» для подключения.

значение должно быть массивом для следующих значений параметра option:
Option Установить значение Notes
CURLOPT_HTTP200ALIASES Массив ответов HTTP 200, которые будут рассматриваться как допустимые ответы, а не как ошибки. Добавлено в cURL 7.10.3.
CURLOPT_HTTPHEADER Массив полей заголовка HTTP для установки в формате array(‘Content-type: text/plain’, ‘Content-length: 100’)
CURLOPT_POSTQUOTE Массив FTP-команд для выполнения на сервере после FTP-запроса было выполнено.
CURLOPT_QUOTE Массив FTP-команд, которые необходимо выполнить на сервере перед FTP-запросом.

значение должно быть ресурсом потока (например, с использованием fopen()) для следующих значений параметра option:
Option Установите значение равным
CURLOPT_FILE Файл, в который должна быть записана передача. По умолчанию используется STDOUT (окно браузера).
CURLOPT_INFILE Файл, из которого следует считывать передачу при загрузке.
CURLOPT_STDERR Альтернативное расположение для вывода ошибок вместо STDERR.
CURLOPT_WRITEHEADER Файл, в который записывается часть заголовка передачи.

Значение

должно быть строкой, которая является именем допустимой функции обратного вызова для следующих значений параметра option:
Опция Установите значение
CURLOPT_HEADERFUNCTION Имя функции обратного вызова, где функция обратного вызова принимает два параметра. Первый — ресурс cURL, второй — строка с данными заголовка для записи. Данные заголовка должны быть записаны при использовании этой функции обратного вызова. Возвращает количество записанных байтов.
CURLOPT_PASSWDFUNCTION Имя функции обратного вызова, где функция обратного вызова принимает три параметра. Первый — это ресурс cURL, второй — строка, содержащая запрос пароля, а третий — максимальная длина пароля. Вернуть строку, содержащую пароль.
CURLOPT_PROGRESSFUNCTION Имя функции обратного вызова, где функция обратного вызова принимает три параметра. Первый — ресурс cURL, второй — ресурс дескриптора файла, а третий — длина. Вернуть строку, содержащую данные.
CURLOPT_READFUNCTION Имя функции обратного вызова, где функция обратного вызова принимает три параметра. Первый — ресурс cURL, второй — ресурс потока, предоставляемый cURL через параметр CURLOPT_INFILE, а третий — максимальный объем данных для чтения. Функция обратного вызова должна возвращать строку с длиной, равной или меньшей, чем количество запрошенных данных, обычно путем считывания ее из переданного ресурса потока.