/php//: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(Skapade sidan med 'php:// php:// — Accessing various I/O streams Description ¶ PHP provides a number of miscellaneous I/O streams that allow access to PHP's own input and output streams, the standard input, output and error file descriptors, in-memory and disk-backed temporary file streams, and filters that can manipulate other file resources as they are read from and written to. php://stdin, php://stdout and php://stderr ¶ php://stdin, php://stdout and php://stderr allow direct acce...')
 
Ingen redigeringssammanfattning
 
Rad 1: Rad 1:
php://
== php:// — Åtkomst till olika I/O-strömmar ==
php:// — Accessing various I/O streams


Description ¶
=== Beskrivning ===
PHP provides a number of miscellaneous I/O streams that allow access to PHP's own input and output streams, the standard input, output and error file descriptors, in-memory and disk-backed temporary file streams, and filters that can manipulate other file resources as they are read from and written to.
PHP erbjuder ett antal olika I/O-strömmar som tillåter åtkomst till PHP:s egna in- och utgångsströmmar, standard in-, ut- och fel-fildeskriptorer, minnes- och diskbaserade tillfälliga filströmmar samt filter som kan manipulera andra filresurser när de läses eller skrivs.


php://stdin, php://stdout and php://stderr
=== php://stdin, php://stdout och php://stderr ===
php://stdin, php://stdout and php://stderr allow direct access to the corresponding input or output stream of the PHP process. The stream references a duplicate file descriptor, so if you open php://stdin and later close it, you close only your copy of the descriptor-the actual stream referenced by STDIN is unaffected. It is recommended that you simply use the constants STDIN, STDOUT and STDERR instead of manually opening streams using these wrappers.
php://stdin, php://stdout och php://stderr tillåter direkt åtkomst till motsvarande in- eller utgångsström för PHP-processen. Strömmen refererar till en duplicerad fildeskriptor, så om du öppnar php://stdin och senare stänger den, stänger du endast din kopia av deskriptorn – själva strömmen som refereras av STDIN påverkas inte. Det rekommenderas att du istället använder konstanterna STDIN, STDOUT och STDERR istället för att manuellt öppna strömmar med dessa omslag.


php://stdin is read-only, whereas php://stdout and php://stderr are write-only.
php://stdin är skrivskyddad, medan php://stdout och php://stderr är skrivbara.


php://input
=== php://input ===
php://input is a read-only stream that allows you to read raw data from the request body. php://input is not available in POST requests with enctype="multipart/form-data" if enable_post_data_reading option is enabled.
php://input är en skrivskyddad ström som tillåter dig att läsa rådata från begärans kropp. php://input är inte tillgänglig i POST-begäranden med enctype="multipart/form-data" om alternativet enable_post_data_reading är aktiverat.


php://output
=== php://output ===
php://output is a write-only stream that allows you to write to the output buffer mechanism in the same way as print and echo.
php://output är en skrivbar ström som tillåter dig att skriva till utmatningsbuffertmekanismen på samma sätt som print och echo.


php://fd
=== php://fd ===
php://fd allows direct access to the given file descriptor. For example, php://fd/3 refers to file descriptor 3.
php://fd tillåter direkt åtkomst till den angivna fildeskriptorn. Till exempel refererar php://fd/3 till fildeskriptorn 3.


php://memory and php://temp
=== php://memory och php://temp ===
php://memory and php://temp are read-write streams that allow temporary data to be stored in a file-like wrapper. One difference between the two is that php://memory will always store its data in memory, whereas php://temp will use a temporary file once the amount of data stored hits a predefined limit (the default is 2 MB). The location of this temporary file is determined in the same way as the sys_get_temp_dir() function.
php://memory och php://temp är skrivbara strömmar som tillåter temporär data att lagras i ett fil-liknande omslag. En skillnad mellan de två är att php://memory alltid lagrar sin data i minnet, medan php://temp kommer att använda en temporär fil när mängden lagrad data når en fördefinierad gräns (standard är 2 MB). Platsen för denna temporära fil bestäms på samma sätt som funktionen sys_get_temp_dir().


The memory limit of php://temp can be controlled by appending /maxmemory:NN, where NN is the maximum amount of data to keep in memory before using a temporary file, in bytes.
Minnesgränsen för php://temp kan styras genom att lägga till /maxmemory:NN, där NN är den maximala mängden data som ska hållas i minnet innan en temporär fil används, i byte.


Caution
'''Varning:'''
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() function to be available. This C function is not available on Windows.
Vissa PHP-tillägg kan kräva en standard IO-ström och kan försöka kasta en given ström till en standard IO-ström. Denna kastning kan misslyckas för minnesströmmar eftersom den kräver att C-funktionen fopencookie() är tillgänglig. Denna C-funktion är inte tillgänglig på Windows.


php://filter
=== php://filter ===
php://filter is a kind of meta-wrapper designed to permit the application of filters to a stream at the time of opening. This is useful with all-in-one file functions such as readfile(), file(), and file_get_contents() where there is otherwise no opportunity to apply a filter to the stream prior the contents being read.
php://filter är ett slags meta-omslag som är utformat för att tillåta tillämpning av filter på en ström vid öppning. Detta är användbart med all-in-one-filfunktioner som readfile(), file() och file_get_contents() där det annars inte finns någon möjlighet att tillämpa ett filter på strömmen innan innehållet läses.


The php://filter target takes the following parameters as part of its path. Multiple filter chains can be specified on one path. Please refer to the examples for specifics on using these parameters.
php://filter-målet tar följande parametrar som en del av sin sökväg. Flera filterkedjor kan specificeras på en sökväg. Se exemplen för specifika användningar av dessa parametrar.


php://filter parameters
=== php://filter parametrar ===
Name Description
{| class="wikitable"
resource=<stream to be filtered> This parameter is required. It specifies the stream that you would like to filter.
! Namn !! Beskrivning
read=<filter list to apply to read chain> This parameter is optional. One or more filter names can be provided here, separated by the pipe character (|).
|-
write=<filter list to apply to write chain> This parameter is optional. One or more filter names can be provided here, separated by the pipe character (|).
| resource=<stream to be filtered> || Denna parameter är obligatorisk. Den specificerar strömmen som du vill filtrera.
<filter list to apply to both chains> Any filter lists which are not prefixed by read= or write= will be applied to both the read and write chains as appropriate.
|-
Options ¶
| read=<filter list to apply to read chain> || Denna parameter är valfri. Ett eller flera filternamn kan anges här, separerade med pipe-tecknet (|).
Wrapper Summary (for php://filter, refer to the summary of the wrapper being filtered)
|-
Attribute Supported
| write=<filter list to apply to write chain> || Denna parameter är valfri. Ett eller flera filternamn kan anges här, separerade med pipe-tecknet (|).
Restricted by allow_url_fopen No
|-
Restricted by allow_url_include php://input, php://stdin, php://memory and php://temp only.
| <filter list to apply to both chains> || Alla filterlistor som inte är föregångna av read= eller write= kommer att tillämpas på både läs- och skrivkedjorna som är lämpliga.
Allows Reading php://stdin, php://input, php://fd, php://memory and php://temp only.
|}
Allows Writing php://stdout, php://stderr, php://output, php://fd, php://memory and php://temp only.
Allows Appending php://stdout, php://stderr, php://output, php://fd, php://memory and php://temp only. (Equivalent to writing)
Allows Simultaneous Reading and Writing php://fd, php://memory and php://temp only.
Supports stat() No. However, php://memory and php://temp support fstat().
Supports unlink() No
Supports rename() No
Supports mkdir() No
Supports rmdir() No
Supports stream_select() php://stdin, php://stdout, php://stderr, php://fd and php://temp only.
Examples ¶
Example #1 php://temp/maxmemory


This optional parameter allows setting the memory limit before php://temp starts using a temporary file.
=== Alternativ ===
{| class="wikitable"
! Omslagsöversikt (för php://filter, se sammanfattningen av omslaget som filtreras)
! Attribut !! Stöd
|-
| Begränsad av allow_url_fopen || Nej
|-
| Begränsad av allow_url_include || Endast php://input, php://stdin, php://memory och php://temp.
|-
| Tillåter läsning || Endast php://stdin, php://input, php://fd, php://memory och php://temp.
|-
| Tillåter skrivning || Endast php://stdout, php://stderr, php://output, php://fd, php://memory och php://temp.
|-
| Tillåter tillägg || Endast php://stdout, php://stderr, php://output, php://fd, php://memory och php://temp. (Motsvarar skrivning)
|-
| Tillåter samtidig läsning och skrivning || Endast php://fd, php://memory och php://temp.
|-
| Stödjer stat() || Nej. Dock stödjer php://memory och php://temp fstat().
|-
| Stödjer unlink() || Nej
|-
| Stödjer rename() || Nej
|-
| Stödjer mkdir() || Nej
|-
| Stödjer rmdir() || Nej
|-
| Stödjer stream_select() || Endast php://stdin, php://stdout, php://stderr, php://fd och php://temp.
|}


=== Exempel ===
'''Exempel #1 php://temp/maxmemory'''
Denna valfria parameter tillåter att minnesgränsen ställs in innan php://temp börjar använda en temporär fil.
<pre>
<?php
<?php
// Set the limit to 5 MB.
// Ställ in gränsen till 5 MB.
$fiveMBs = 5 * 1024 * 1024;
$fiveMBs = 5 * 1024 * 1024;
$fp = fopen("php://temp/maxmemory:$fiveMBs", 'r+');
$fp = fopen("php://temp/maxmemory:$fiveMBs", 'r+');
Rad 65: Rad 87:
fputs($fp, "hello\n");
fputs($fp, "hello\n");


// Read what we have written.
// Läs vad vi har skrivit.
rewind($fp);
rewind($fp);
echo stream_get_contents($fp);
echo stream_get_contents($fp);
?>
?>
Example #2 php://filter/resource=<stream to be filtered>
</pre>
 
'''Exempel #2 php://filter/resource=<stream to be filtered>'''


This parameter must be located at the end of your php://filter specification and should point to the stream which you want filtered.
Denna parameter måste vara placerad i slutet av din php://filter-specifikation och ska peka på den ström som du vill filtrera.


<pre>
<?php
<?php
/* This is equivalent to simply:
/* Detta motsvarar helt enkelt:
   readfile("http://www.example.com");
   readfile("http://www.example.com");
   since no filters are actually specified */
   eftersom inga filter faktiskt anges */


readfile("php://filter/resource=http://www.example.com");
readfile("php://filter/resource=http://www.example.com");
?>
?>
Example #3 php://filter/read=<filter list to apply to read chain>
</pre>


This parameter takes one or more filternames separated by the pipe character |.
'''Exempel #3 php://filter/read=<filter list to apply to read chain>'''


Denna parameter tar ett eller flera filternamn separerade av pipe-tecknet |.
<pre>
<?php
<?php
/* This will output the contents of
/* Detta kommer att skriva ut innehållet på
   www.example.com entirely in uppercase */
   www.example.com helt i versaler */
readfile("php://filter/read=string.toupper/resource=http://www.example.com");
readfile("php://filter/read=string.toupper/resource=http://www.example.com");


/* This will do the same as above
/* Detta kommer att göra samma sak som ovan
   but will also ROT13 encode it */
   men kommer också att ROT13-koda det */
readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
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>
</pre>


This parameter takes one or more filternames separated by the pipe character |.
'''Exempel #4 php://filter/write=<filter list to apply to write chain>'''


Denna parameter tar ett eller flera filternamn separerade av pipe-tecknet |.
<pre>
<?php
<?php
/* This will filter the string "Hello World"
/* Detta kommer att filtrera strängen "Hello World"
   through the rot13 filter, then write to
   genom ROT13-filtret och sedan skriva till
   example.txt in the current directory */
   example.txt i den nuvarande katalogen */
file_put_contents("php://filter/write=string.rot13/resource=example.txt","Hello World");
file_put_contents("php://filter/write=string.rot13/resource=example.txt","Hello World");
?>
?>
Example #5 php://memory and php://temp are not reusable
</pre>


php://memory and php://temp are not reusable, i.e. after the streams have been closed there is no way to refer to them again.
'''Exempel #5 php://memory och php://temp är inte återanvändbara'''


php://memory och php://temp är inte återanvändbara, det vill säga efter att strömmarna har stängts finns det inget sätt att hänvisa till dem igen.
<pre>
<?php
<?php
file_put_contents('php://memory', 'PHP');
file_put_contents('php://memory', 'PHP');
echo file_get_contents('php://memory'); // prints nothing
echo file_get_contents('php://memory'); // skriver ut inget
?>
</pre>


= Sidslut =
= Sidslut =

Nuvarande version från 1 september 2024 kl. 04.45

php:// — Åtkomst till olika I/O-strömmar

Beskrivning

PHP erbjuder ett antal olika I/O-strömmar som tillåter åtkomst till PHP:s egna in- och utgångsströmmar, standard in-, ut- och fel-fildeskriptorer, minnes- och diskbaserade tillfälliga filströmmar samt filter som kan manipulera andra filresurser när de läses eller skrivs.

php://stdin, php://stdout och php://stderr

php://stdin, php://stdout och php://stderr tillåter direkt åtkomst till motsvarande in- eller utgångsström för PHP-processen. Strömmen refererar till en duplicerad fildeskriptor, så om du öppnar php://stdin och senare stänger den, stänger du endast din kopia av deskriptorn – själva strömmen som refereras av STDIN påverkas inte. Det rekommenderas att du istället använder konstanterna STDIN, STDOUT och STDERR istället för att manuellt öppna strömmar med dessa omslag.

php://stdin är skrivskyddad, medan php://stdout och php://stderr är skrivbara.

php://input

php://input är en skrivskyddad ström som tillåter dig att läsa rådata från begärans kropp. php://input är inte tillgänglig i POST-begäranden med enctype="multipart/form-data" om alternativet enable_post_data_reading är aktiverat.

php://output

php://output är en skrivbar ström som tillåter dig att skriva till utmatningsbuffertmekanismen på samma sätt som print och echo.

php://fd

php://fd tillåter direkt åtkomst till den angivna fildeskriptorn. Till exempel refererar php://fd/3 till fildeskriptorn 3.

php://memory och php://temp

php://memory och php://temp är skrivbara strömmar som tillåter temporär data att lagras i ett fil-liknande omslag. En skillnad mellan de två är att php://memory alltid lagrar sin data i minnet, medan php://temp kommer att använda en temporär fil när mängden lagrad data når en fördefinierad gräns (standard är 2 MB). Platsen för denna temporära fil bestäms på samma sätt som funktionen sys_get_temp_dir().

Minnesgränsen för php://temp kan styras genom att lägga till /maxmemory:NN, där NN är den maximala mängden data som ska hållas i minnet innan en temporär fil används, i byte.

Varning: Vissa PHP-tillägg kan kräva en standard IO-ström och kan försöka kasta en given ström till en standard IO-ström. Denna kastning kan misslyckas för minnesströmmar eftersom den kräver att C-funktionen fopencookie() är tillgänglig. Denna C-funktion är inte tillgänglig på Windows.

php://filter

php://filter är ett slags meta-omslag som är utformat för att tillåta tillämpning av filter på en ström vid öppning. Detta är användbart med all-in-one-filfunktioner som readfile(), file() och file_get_contents() där det annars inte finns någon möjlighet att tillämpa ett filter på strömmen innan innehållet läses.

php://filter-målet tar följande parametrar som en del av sin sökväg. Flera filterkedjor kan specificeras på en sökväg. Se exemplen för specifika användningar av dessa parametrar.

php://filter parametrar

Namn Beskrivning
resource=<stream to be filtered> Denna parameter är obligatorisk. Den specificerar strömmen som du vill filtrera.
read=<filter list to apply to read chain> ).
write=<filter list to apply to write chain> ).
<filter list to apply to both chains> Alla filterlistor som inte är föregångna av read= eller write= kommer att tillämpas på både läs- och skrivkedjorna som är lämpliga.

Alternativ

Omslagsöversikt (för php://filter, se sammanfattningen av omslaget som filtreras) Attribut Stöd
Begränsad av allow_url_fopen Nej
Begränsad av allow_url_include Endast php://input, php://stdin, php://memory och php://temp.
Tillåter läsning Endast php://stdin, php://input, php://fd, php://memory och php://temp.
Tillåter skrivning Endast php://stdout, php://stderr, php://output, php://fd, php://memory och php://temp.
Tillåter tillägg Endast php://stdout, php://stderr, php://output, php://fd, php://memory och php://temp. (Motsvarar skrivning)
Tillåter samtidig läsning och skrivning Endast php://fd, php://memory och php://temp.
Stödjer stat() Nej. Dock stödjer php://memory och php://temp fstat().
Stödjer unlink() Nej
Stödjer rename() Nej
Stödjer mkdir() Nej
Stödjer rmdir() Nej
Stödjer stream_select() Endast php://stdin, php://stdout, php://stderr, php://fd och php://temp.

Exempel

Exempel #1 php://temp/maxmemory

Denna valfria parameter tillåter att minnesgränsen ställs in innan php://temp börjar använda en temporär fil.

<?php
// Ställ in gränsen till 5 MB.
$fiveMBs = 5 * 1024 * 1024;
$fp = fopen("php://temp/maxmemory:$fiveMBs", 'r+');

fputs($fp, "hello\n");

// Läs vad vi har skrivit.
rewind($fp);
echo stream_get_contents($fp);
?>

Exempel #2 php://filter/resource=<stream to be filtered>

Denna parameter måste vara placerad i slutet av din php://filter-specifikation och ska peka på den ström som du vill filtrera.

<?php
/* Detta motsvarar helt enkelt:
  readfile("http://www.example.com");
  eftersom inga filter faktiskt anges */

readfile("php://filter/resource=http://www.example.com");
?>

Exempel #3 php://filter/read=<filter list to apply to read chain>

Denna parameter tar ett eller flera filternamn separerade av pipe-tecknet |.

<?php
/* Detta kommer att skriva ut innehållet på
  www.example.com helt i versaler */
readfile("php://filter/read=string.toupper/resource=http://www.example.com");

/* Detta kommer att göra samma sak som ovan
  men kommer också att ROT13-koda det */
readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
?>

Exempel #4 php://filter/write=<filter list to apply to write chain>

Denna parameter tar ett eller flera filternamn separerade av pipe-tecknet |.

<?php
/* Detta kommer att filtrera strängen "Hello World"
  genom ROT13-filtret och sedan skriva till
  example.txt i den nuvarande katalogen */
file_put_contents("php://filter/write=string.rot13/resource=example.txt","Hello World");
?>

Exempel #5 php://memory och php://temp är inte återanvändbara

php://memory och php://temp är inte återanvändbara, det vill säga efter att strömmarna har stängts finns det inget sätt att hänvisa till dem igen.

<?php
file_put_contents('php://memory', 'PHP');
echo file_get_contents('php://memory'); // skriver ut inget
?>

Sidslut

Orginalhemsidan på Engelska :https://www.php.net/manual/en/wrappers.http.php
PHP
Språkreferens
Stödda Protokoll och Inslagningar


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webserver.