PHP でシェルスクリプトを作成し、制御をシェルに戻したい場合
proc_open() で、 PHP が作る子プロセスの stdin/stdout/stderr と、 PHP プロセス自体のそれらを繋ぐ。
実装例
#!/usr/bin/php -f <?php // usage: mysql_connect.php database_name $dbname = $argv[1]; // get_connection_info() は適当に自作する。 list($host, $user, $password) = get_connection_info($dbname); $proc = proc_open( "mysql -h $host -u $user --password=$password -A --prompt=\"\u:\d>\_\" \"$dbname\"", array( 0 => STDIN, 1 => STDOUT, 2 => STDERR, ), $pipes ); if (!$proc) { fwrite(STDERR, "Failed to connect $dbname ($user@$host)"); exit(1); } foreach ($pipes as $fp) { fclose($fp); } proc_close($proc);