????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 18.117.249.37 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/self/root/home/b8009/php-5.6.22/ext/openssl/tests/ |
Upload File : |
<?php const WORKER_ARGV_VALUE = 'RUN_WORKER'; function phpt_notify() { ServerClientTestCase::getInstance()->notify(); } function phpt_wait() { ServerClientTestCase::getInstance()->wait(); } /** * This is a singleton to let the wait/notify functions work * I know it's horrible, but it's a means to an end */ class ServerClientTestCase { private $isWorker = false; private $workerHandle; private $workerStdIn; private $workerStdOut; private static $instance; public static function getInstance($isWorker = false) { if (!isset(self::$instance)) { self::$instance = new self($isWorker); } return self::$instance; } public function __construct($isWorker = false) { if (!isset(self::$instance)) { self::$instance = $this; } $this->isWorker = $isWorker; } private function spawnWorkerProcess($code) { $cmd = sprintf('%s "%s" %s', PHP_BINARY, __FILE__, WORKER_ARGV_VALUE); $this->workerHandle = proc_open($cmd, [['pipe', 'r'], ['pipe', 'w'], STDERR], $pipes); $this->workerStdIn = $pipes[0]; $this->workerStdOut = $pipes[1]; fwrite($this->workerStdIn, $code . "\n---\n"); } private function cleanupWorkerProcess() { fclose($this->workerStdIn); fclose($this->workerStdOut); proc_close($this->workerHandle); } private function stripPhpTagsFromCode($code) { return preg_replace('/^\s*<\?(?:php)?|\?>\s*$/i', '', $code); } public function runWorker() { $code = ''; while (1) { $line = fgets(STDIN); if (trim($line) === "---") { break; } $code .= $line; } eval($code); } public function run($proc1Code, $proc2Code) { $this->spawnWorkerProcess($this->stripPhpTagsFromCode($proc2Code)); eval($this->stripPhpTagsFromCode($proc1Code)); $this->cleanupWorkerProcess(); } public function wait() { fgets($this->isWorker ? STDIN : $this->workerStdOut); } public function notify() { fwrite($this->isWorker ? STDOUT : $this->workerStdIn, "\n"); } } if (isset($argv[1]) && $argv[1] === WORKER_ARGV_VALUE) { ServerClientTestCase::getInstance(true)->runWorker(); }