Re: PHP 4.0 Bug #7380 Updated: the function passthru is bad!!!!!!!!

From: Date: Mon, 23 Oct 2000 16:15:42 +0000
Subject: Re: PHP 4.0 Bug #7380 Updated: the function passthru is bad!!!!!!!!
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-35900@lists.php.net to get a copy of this message
Bug Database wrote: > ID: 7380 > Updated by: lyric > Reported By: jorge@e-nexus.com.mx > Status: Closed > Bug Type: Output Control > Assigned To: > Comments: > > Your problem is nothing to do with PHP. If you ran > > cat /home/test/test file.gif > > from the command prompt, it wouldn't work either. cat thinks you mean two files : > "/home/test/test" and "file.gif" > > You need either to escape the space, or put quotes around your filename. > > Eg: > > passthru( 'cat /home/test/test\ file.gif' ); > > passthru( 'cat "/home/test/test file.gif"' ); > > Previous Comments: > --------------------------------------------------------------------------- > > [2000-10-22 22:23:56] chrisv@php.net > That's not a problem with the passthru() function- take this scenario: > > ------------------------------------------ > > test@test:/home/test$ cat test file.gif > > cat: test: No such file or directory > > cat: file.gif: No such file or directory > > test@test:/home/test$ cat 'test file.gif' > > [insert gif file here] > > ----------------------------------------- > > So, in the function -- > > passthru("convert -scale 100x100 cat image.gif gif:-"); > > the program convert is receiving the arguments: > > 0: convert > > 1: -scale > > 2: 100x100 > > 3: cat > > 4: image.gif > > 5: gif:- > > passthru("convert -scale 100x100 'cat image.gif' gif:-"); > > is most likely what you want. > > --------------------------------------------------------------------------- > > [2000-10-22 22:09:45] jorge@e-nexus.com.mx > Hi. > > I believe that I don't explain to me well, I want to send an image to the > > navigator, my code in php works well if thefile that I want to show doesn't > > have any space for example in the name (cat.gif), but if the name of the > > image has a space (cat image.gif) the command doesn't make anything. > > Example. > > The following code converts an image using ImageMagic, the result is sent to output standar > > This code don't work > > <? > > Header("Content-type: image/gif"); > > passthru("convert -scale 100x100 cat image.gif gif:-"); > > ?> > > This code work fine > > <? > > Header("Content-type: image/gif"); > > passthru("convert -scale 100x100 cat_image.gif gif:-"); > > ?> > > --------------------------------------------------------------------------- > > [2000-10-21 18:46:00] lyric@php.net > This might be a dumb question, but you do know that you can't just "cat foo.gif" > in the middle of a HTML file and expect it to produce an inline image, right? > > I've got two ideas: > > a) unless you change it, the content-type of the results from a php program is > "text/html". Try adding > > Header("Content-type: image/gif"); > > to the start of your PHP file > > b) the webserver hasn't got enough permissions to see the graphic? Try copying it to the > same place as your php file, and typing "chmod 444 file.gif" to make it world-readable. > > The following code works perfectly for me: > > <?php > > Header("Content-type: image/gif"); > > passthru("cat a.gif"); > > ?> > > I suppose there's a reason you're using "cat foo.gif" rather than > readfile()? > > --------------------------------------------------------------------------- > > [2000-10-21 01:41:25] jorge@e-nexus.com.mx > the function don't return anything to the browser, the problem is when i run a program > that need to open a file contained a spaces for example > > $cmd="cat /home/test/test file.gif"; > > passthru($cmd); > > If you run this script the document is EMPTY > > I try the follow comands without results > > $cmd="cat "/home/test/test file.gif""; > > $cmd="cat /home/test/test file.gif"; > > Please help me > > --------------------------------------------------------------------------- > > Full Bug description available at: http://bugs.php.net/?id=7380 That is no the problem, I try all that form to run the command, for example> passthru("cat \"test file.gif\""); passthru("cat test\ file.gif"); passthru("cat 'test file.gif'"); nothing work To make the test i Used this program; // file test.php <? $cmd="/usr/bin/test.sh '/usr/local/mns_files/PAIN/.previews/Read Me.gif'"; echo $cmd; passthru($cmd); ?> // file /usr/bin/test.sh echo $1 >> /usr/local/log echo $2 >> /usr/local/log When I run this script the contend of the log file is: '/usr/local/mns_files/PAIN/.previews/Read Me.gif' How you can see, the programa recive two arguments.

« previous php.dev (#35900) next »