php://
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
php://
Референца за `wrappers.php.php` со подобрена типографија и навигација.
php://
php:// — Пристап до разни I/O потоци
= NULL
PHP обезбедува голем број на помошни I/O потоци што овозможуваат пристап до сопствените PHP влезови и излези, стандардните влезови, излези и дескриптори на грешки, привремени потоци на датотеки во меморија и на дискот, и филтри што можат да ги манипулираат другите ресурси на датотеките додека се читаат и пишуваат.
php://stdin, php://stdout and php://stderr
php://stdin, php://stdout and
php://stderr овозможуваат директен пристап до соодветниот влезен или излезен поток на PHP процесот. Потокот упатува на дупликат дескриптор на датотека, така што ако отворите php://stdin
и подоцна го затворите, вие го затворате само вашето копие од дескрипторот - вистинскиот поток на кој упатува STDIN не е засегнат. Се препорачува едноставно да ги користите константите STDIN,
STDOUT and STDERR наместо рачно отворање на потоци користејќи ги овие обвивки.
php://stdin е само за читање, додека php://stdout and php://stderr се само за пишување.
php://input
php://input е поток само за читање што ви овозможува да читате сурови податоци од телото на барањето.
php://input не е достапен во POST барања со
enctype="multipart/form-data" if
enable_post_data_reading
опцијата е овозможена.
php://output
php://output е поток само за пишување што ви овозможува да пишувате во механизмот за излезниот бафер на ист начин како print and echo.
php://fd
php://fd овозможува директен пристап до дадениот дескриптор на датотека. На пример, php://fd/3 упатува на дескрипторот на датотека 3.
php://memory and php://temp
php://memory and php://temp се потоци за читање-пишување што овозможуваат привремено складирање на податоци во обвивка слична на датотека. Една разлика помеѓу двете е што php://memory секогаш ќе ги складира своите податоци во меморија, додека php://temp ќе користи привремена датотека откако количината на складирани податоци ќе достигне однапред дефиниран лимит (стандардно е 2 MB). Локацијата на оваа привремена датотека се одредува на ист начин како sys_get_temp_dir() function.
Лимитот на меморијата на php://temp може да се контролира со додавање /maxmemory:NN, каде што NN е максималната количина на податоци што треба да се чуваат во меморијата пред да се користи привремена датотека, во бајти.
Some PHP extensions may require a standard IO stream, and may attempt to cast a given stream to a standard IO stream. This cast can fail for memory streams as it requires the C fopencookie() Некои PHP екстензии може да бараат стандарден IO стрим и може да се обидат да го претворат даден стрим во стандарден IO стрим. Ова претворање може да не успее за мемориски стримови бидејќи бара C функцијата да биде достапна. not функцијата да биде достапна.
php://filter
php://filter достапна на Windows. filters е вид на мета-обвивка дизајнирана да дозволи примена на readfile(), file()Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во file_get_contents() на стрим во моментот на отворање. Ова е корисно со сите-во-едно функции за датотеки како
На php://filter каде што инаку нема можност да се примени филтер на стримот пред да се прочитаат содржините.
| Име | = NULL |
|---|---|
resource=<stream to be filtered>
|
целта зема ги следниве параметри како дел од својот пат. Повеќе синџири на филтри може да се специфицираат на еден пат. Ве молиме погледнете ги примерите за специфики за користење на овие параметри. |
read=<filter list to apply to read chain>
|
Овој параметар е задолжителен. Тој го специфицира стримот што би сакале да го филтрирате.|).
|
write=<filter list to apply to write chain>
|
Овој параметар е задолжителен. Тој го специфицира стримот што би сакале да го филтрирате.|).
|
<filter list to apply to both chains>
|
Овој параметар е опционален. Едно или повеќе имиња на филтри може да се обезбедат овде, разделени со знакот за цевка ( read=
or write= ќе бидат применети на синџирите за читање и пишување како што е соодветно.
|
Примери
Example #1 php://temp/maxmemory
Овој параметар мора да се наоѓа на крајот од вашата php://temp спецификација и треба да укажува на стримот што сакате да го филтрирате.
<?php
// Set the limit to 5 MB.
$fiveMBs = 5 * 1024 * 1024;
$fp = fopen("php://temp/maxmemory:$fiveMBs", 'r+');
fputs($fp, "hello\n");
// Read what we have written.
rewind($fp);
echo stream_get_contents($fp);
?>Example #2 php://filter/resource=<stream to be filtered>
Овој параметар зема едно или повеќе имиња на филтри разделени со знакот за цевка php://filter Некои PHP екстензии може да бараат стандарден IO стрим и може да се обидат да го префрлат даден стрим во стандарден IO стрим. Ова префрлање може да не успее за мемориски стримови бидејќи бара C
<?php
/* This is equivalent to simply:
readfile("http://www.example.com");
since no filters are actually specified */
readfile("php://filter/resource=http://www.example.com");
?>Example #3 php://filter/read=<filter list to apply to read chain>
спецификација и треба да укажува на стримот што сакате да го филтрирате. |.
<?php
/* This will output the contents of
www.example.com entirely in uppercase */
readfile("php://filter/read=string.toupper/resource=http://www.example.com");
/* This will do the same as above
but will also ROT13 encode it */
readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
?>Example #4 php://filter/write=<filter list to apply to write chain>
спецификација и треба да укажува на стримот што сакате да го филтрирате. |.
<?php
/* This will filter the string "Hello World"
through the rot13 filter, then write to
example.txt in the current directory */
file_put_contents("php://filter/write=string.rot13/resource=example.txt","Hello World");
?>Example #5 php://memory and php://temp are not reusable
php://memory and php://temp не се за еднократна употреба, т.е. откако ќе се затворат потоците, нема начин повторно да се повикате на нив.
<?php
file_put_contents('php://memory', 'PHP');
echo file_get_contents('php://memory'); // prints nothingExample #6 php://input to read JSON data from the request body
Овој пример покажува како да се читаат сурови JSON податоци од POST, PUT и PATCH барања користејќи php://input.
<?php
$input = file_get_contents("php://input");
$json_array = json_decode(
json: $input,
associative: true,
flags: JSON_THROW_ON_ERROR
);
echo "Received JSON data: ";
print_r($json_array);
?>