#22744 [Fbk->Opn]: Split hangs on something that 'file' does quickly

From: Date: Tue, 18 Mar 2003 19:02:00 +0000
Subject: #22744 [Fbk->Opn]: Split hangs on something that 'file' does quickly
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-35864@lists.php.net to get a copy of this message
ID: 22744 User updated by: tim at timcrider dot com Reported By: tim at timcrider dot com -Status: Feedback +Status: Open Bug Type: Performance problem Operating System: Red Hat 8.0 PHP Version: 4.3.2RC1 New Comment: I apologize the second script is bogus. Here is the fix: ---[ works.php ]--- #!/bin/php <?php $mybin = "/usr/local/mysql/bin/mysqlbinlog"; $mylogpath = "/var/lib/mysql/"; $dolog = $mylogpath."towely-bin.010"; $lstk = exec("mysqlbinlog $dolog"); print_r($lstk); print count($lstk)."\n"; ?> (towely) phpbug# more test.php #!/bin/php <?php $mybin = "/usr/local/mysql/bin/mysqlbinlog"; $mylogpath = "/var/lib/mysql/"; $dolog = $mylogpath."towely-bin.010"; $tmpfname = tempnam ("/tmp", "mybinlogger"); $fp = fopen($tmpfname, "w"); fwrite($fp, $mybin $dolog); fclose($fp); $lstk = file($tmpfname); unset($tmpfname); print count($lstk)."\n"; ?> --[ End works.php ]--- ---[ broken.php ]--- #!/bin/php <?php $mybin = "/usr/local/mysql/bin/mysqlbinlog"; $mylogpath = "/var/lib/mysql/"; $dolog = $mylogpath."towely-bin.010"; $sys = mysqlbinlog $dolog; $lstk = split("\n", $sys); print_r($lstk); print count($lstk)."\n"; ?> ---[ End broken.php ]--- Using exec does not give me the output that I need to do this. exec only returns the last line of the output. I'm trying to get all of the output, which has line breaks at the end of every row. I did a dump of this server using 'php -i > php_ini.txt and can be seen here. http://timcrider.com/php_ini.txt If there is anything else you need me to do let me know. Tim Previous Comments: ------------------------------------------------------------------------ [2003-03-18 12:41:51] wez@php.net Your second test script look bogus to me. Have you considered using http://www.php.net/manual/en/ref.exec.php, which gives the lines as an array anyway? How big is the logfile? Do you have magic_quotes enabled? If you leave it running, how long does it take to complete and how much memory does it use? ------------------------------------------------------------------------ [2003-03-17 09:04:26] tim at timcrider dot com split hangs for some reason, but doing the same logical process with other functions returns a very quick result. The problem is that I'm trying to process the mysqlbinlog output and parse it for easier management. The logical process is as follows. $sys = mysqlbinlog logfile; This part works fine, but when I try: $lstk = split("\n", $sys); the script hangs for well over 5 minutes (I kill the script at that time. However this code produces the desired results in less than 2 seconds: $mybin = "/usr/local/mysql/bin/mysqlbinlog"; $mylogpath = "/var/lib/mysql/"; $dolog = $mylogpath."towely-bin.010"; $tmpfname = tempnam ("/tmp", "mybinlogger"); $fp = fopen($fp, $tmpfname); fwrite($fp, $mybin $dolog); fclose($fp); $lstk = file($tmpfname); unset($tmpfname); print count($lstk)."\n"; I am using this from the command line version of php 4.3.2 RC1. Here is my php -v: PHP 4.3.2-RC1 (cli) (built: Mar 14 2003 13:28:33) Copyright (c) 1997-2003 The PHP Group Zend Engine v1.3.0, Copyright (c) 1998-2003 Zend Technologies with the ionCube PHP Accelerator v1.3.3r2, Copyright (c) 2001-2002, by Nick Lindridge If you need any other information please feel free to contact me at tim@timcrider.com ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=22744&edit=1

« previous php.bugs (#35864) next »