Revision: 18095
Updated Code
at September 22, 2009 21:04 by renatoelias
Updated Code
< ? // system('/Applications/Darwine/Wine.bundle/Contents/bin/wine cgi-proxy.exe'); function decode($to,$encode = false) { $arrayobject = new ArrayObject($to); $iterator = $arrayobject->getIterator(); while($iterator->valid()){ if ($encode) $keywords .= $iterator->key()."=".base64_encode($iterator->current())."&"; else $keywords .= $iterator->key()."=".$iterator->current()."&"; $iterator->next(); } return $keywords; } $descriptorspec = array( 0 => array("pipe", "r"), // stdin is a pipe that the child will read from 1 => array("pipe", "w"), // stdout is a pipe that the child will write to 2 => array("file", "/Users/gards/KitWvbv200/componentes_vbv/error-output.txt", "a") // stderr is a file to write to ); $get = decode($_GET); $post = decode($_POST); $cwd = '/Users/gards/KitWvbv200/componentes_vbv'; $env = array('QUERY_STRING' => $get, 'REQUEST_METHOD' => 'GET'); // $process = proc_open('/Applications/Darwine/Wine.bundle/Contents/bin/wine cgi-proxy.exe', $descriptorspec, $pipes, $cwd, $env); if (is_resource($process)) { // $pipes now looks like this: // 0 => writeable handle connected to child stdin // 1 => readable handle connected to child stdout // Any error output will be appended to /tmp/error-output.txt // fwrite($pipes[0], $post); fclose($pipes[0]); header('Content-Type:text/html;charset=ISO-8859-1'); echo str_replace('Content-Type:text/html;charset=ISO-8859-1','',stream_get_contents($pipes[1])); fclose($pipes[1]); // It is important that you close any pipes before calling // proc_close in order to avoid a deadlock $return_value = proc_close($process); //echo "command returned $return_value\n"; } ?>
Revision: 18094
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at September 22, 2009 20:59 by renatoelias
Initial Code
// system('/Applications/Darwine/Wine.bundle/Contents/bin/wine cgi-proxy.exe'); function decode($to,$encode = false) { $arrayobject = new ArrayObject($to); $iterator = $arrayobject->getIterator(); while($iterator->valid()){ if ($encode) $keywords .= $iterator->key()."=".base64_encode($iterator->current())."&"; else $keywords .= $iterator->key()."=".$iterator->current()."&"; $iterator->next(); } return $keywords; } $descriptorspec = array( 0 => array("pipe", "r"), // stdin is a pipe that the child will read from 1 => array("pipe", "w"), // stdout is a pipe that the child will write to 2 => array("file", "/Users/gards/KitWvbv200/componentes_vbv/error-output.txt", "a") // stderr is a file to write to ); $get = decode($_GET); $post = decode($_POST); $cwd = '/Users/gards/KitWvbv200/componentes_vbv'; $env = array('QUERY_STRING' => $get,'CONTENT_LENGTH' => strlen($post),'REQUEST_METHOD' => 'POST'); // $process = proc_open('/Applications/Darwine/Wine.bundle/Contents/bin/wine mpg.exe', $descriptorspec, $pipes, $cwd, $env); if (is_resource($process)) { // $pipes now looks like this: // 0 => writeable handle connected to child stdin // 1 => readable handle connected to child stdout // Any error output will be appended to /tmp/error-output.txt fwrite($pipes[0], $post); error_log($post."\n", 3, "mpg.log"); fclose($pipes[0]); header('Content-Type:text/html;charset=ISO-8859-1'); echo str_replace('Content-Type:text/html;charset=ISO-8859-1','',stream_get_contents($pipes[1])); error_log(stream_get_contents($pipes[1])."\n", 3, "mpg.log"); fclose($pipes[1]); // It is important that you close any pipes before calling // proc_close in order to avoid a deadlock $return_value = proc_close($process); //echo "command returned $return_value\n"; }
Initial URL
http://renatoelias.art.br/blog/2009/09/22/php-wrapper-cgi-usando-phpwine-para-rodar-cgi/
Initial Description
This a simple wrapper for cgi, write in php, use stdin for post, and query_string env, for get =)
Initial Title
PHP WRAPPER CGI
Initial Tags
php
Initial Language
PHP