You want to pass input to an external program run from inside a PHP script. For example, your database requires you to run an external program to index text and you want to pass text to that program.
Open a pipe to the program with popen(), write to the pipe with fputs() or fwrite(), and then close the pipe with pclose():
1 2 3 4 |
$ph = popen('/usr/bin/indexer --category=dinner','w') or die($php_errormsg); if (-1 == fputs($ph,"red-cooked chicken\n")) { die($php_errormsg); } if (-1 == fputs($ph,"chicken and dumplings\n")) { die($php_errormsg); } pclose($ph) or die($php_errormsg); |
This example uses popen() to call the nsupdate command, which submits Dynamic DNS Update requests to name servers:
1 2 3 4 5 |
$ph = popen('/usr/bin/nsupdate -k keyfile') or die($php_errormsg); if (-1 == fputs($ph,"update delete test.example.com A\n")) { die($php_errormsg);} if (-1 == fputs($ph,"update add test.example.com 5 A 192.168.1.1\n")) { die($php_errormsg);} pclose($ph) or die($php_errormsg); |
Two commands are sent to nsupdate via popen(). The first deletes the test.example. com A record, and the second adds a new A record for test.example.com with the address 192.168.1.1.