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

From: Date: Mon, 23 Oct 2000 02:28:03 +0000
Subject: PHP 4.0 Bug #7380 Updated: the function passthru is bad!!!!!!!!
Groups: php.dev 
Request: Send a blank email to php-dev+get-35835@lists.php.net to get a copy of this message
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

« previous php.dev (#35835) next »