It's fairly easy to convert a PHP script to an executable script under
Unix. Just make it executable. Most things work without changes,
although you will be missing any URL parameters and web specific
directives. I've used parts of the Zend framework in command line
scripts without changes.
But if you really need to keep it as a web page, use wget as the exec
script. It's round about, but you are running and releasing the script
while keeping it web based.
Although for php to call the script and not wait for it to complete, I
think you need to do more than just put it in the background. You have
to make sure PHP has no return values to wait for (>/dev/null 2>&1)
and "gives up" control of it (nohup)
shell_exec('nohup wget ... > /dev/null 2>&1)

Brent Baisley

On Mon, Apr 6, 2009 at 10:53 AM, Corey H Maass - gelform.com
<[email protected]> wrote:
> Thanks, Rob. I looked at that for a minute cos it seems like the best
> option, but I'm using the Zend framework, where it would be a pain to
> break the code out to be an executable script. Plus I want to be able to
> call it from a URL.
>
> Corey
>
> On Sun, 5 Apr 2009 18:51:44 -0400, "Rob Marscher"
> <[email protected]> said:
>> Corey,
>> Are you on a unix based machine?  Is that script really local?
>>
>> Try
>> shell_exec('/path/to/s3uploader.php &');
>> instead of fopen.
>>
>> The ampersand will get it to return without waiting for the upload
>> script to finish.
>>
>> On Apr 5, 2009, at 6:16 PM, Daniel Convissor
>> <[email protected]
>>  > wrote:
>>
>> > Hi Corey:
>> >
>> > On Sun, Apr 05, 2009 at 04:28:20PM -0400, Corey H Maass -
>> > gelform.com wrote:
>> >>
>> >> set_time_limit(1);
>> >
>> > set_time_limit() works for your PHP code.  Streams, in a way, are
>> > outside
>> > your PHP code.
>> >
>> >
>> >> $handle = fopen("http://localhost/s3uploader.php";, "r");
>> >> stream_set_timeout($handle, 1);
>> >>
>> >> But neither timeout is working - it sits and spins while the upload
>> >> takes place. Any ideas?
>> >
>> > That's not working because you're opening and reading the file
>> > directly.
>> > The timeout setting has no effect because you haven't gotten to that
>> > line
>> > yet
>> >
>> > Two options.  Use fsockopen() instead of fopen(), see the
>> > stream_set_timeout() documentation for examples.  Or use
>> > ini_set('default_socket_timeout', 1) before you call fopen().
>> >
>> > --Dan
>> >
>> > --
>> > T H E   A N A L Y S I S   A N D   S O L U T I O N S   C O M P A N Y
>> >            data intensive web and database programming
>> >                http://www.AnalysisAndSolutions.com/
>> > 4015 7th Ave #4, Brooklyn NY 11232  v: 718-854-0335 f: 718-854-0409
>> > _______________________________________________
>> > New York PHP User Group Community Talk Mailing List
>> > http://lists.nyphp.org/mailman/listinfo/talk
>> >
>> > http://www.nyphp.org/show_participation.php
>> _______________________________________________
>> New York PHP User Group Community Talk Mailing List
>> http://lists.nyphp.org/mailman/listinfo/talk
>>
>> http://www.nyphp.org/show_participation.php
>
> //
> Corey H Maass
> Gelform Design
> Brooklyn, NY
> Web design and development for art and business
>
> em [email protected]
> ww http://www.gelform.com
> ph 646/228.5048
> fx 866/502.4861
> IM gelform
>
> _______________________________________________
> New York PHP User Group Community Talk Mailing List
> http://lists.nyphp.org/mailman/listinfo/talk
>
> http://www.nyphp.org/show_participation.php
>
_______________________________________________
New York PHP User Group Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk

http://www.nyphp.org/show_participation.php

Reply via email to