Forum und email

popen

(PHP 4, PHP 5)

popen — Opent een proces bestands pointer

Beschrijving

resource popen ( string $command , string $mode )

Opent een pipe naar een proces uitgevoerd door het forken van het commando aangegeven met command .

Geeft een bestands pointer terug die hetzelfde is als eentje die terug komt van fopen(), behalve dat hij of alleen lezen of alleen schrijven is, en dat hij gesloten moet worden met pclose(). Deze pointer mag gebruikt worden in combinatie met fgets(), fgetss() en fputs().

Als er een fout optreed, geeft hij FALSE terug.

Note: Als je zoekt naar twee-wegs ondersteuning (two-way), gebruik proc_open().

Example#1 popen() voorbeeld

<?php
$handle 
popen ("/bin/ls""r");
?>

Als het commando dat uitgevoerd moet worden niet bestaat, geeft hij een geldige bron terug. Dit lijkt raar te zijn, maar het is logisch; het maakt het mogelijk om elke foutmelding die de shell terug geeft te bekijken:

<?php
error_reporting
(E_ALL);

/* Voeg omleiding toe zodat we stderr kunnen gebruiken. */
$handle popen('/path/to/spooge 2>&1''r');
echo 
"'$fp'; " gettype($handle) . "\n";
$read fread($handle2096);
echo 
$read;
pclose($handle);
?>

Zie ook pclose(), fopen(), en proc_open().