|  | Posted by Dave (from the UK) on 05/22/06 13:32 
Owen Rees wrote:> On Sun, 21 May 2006 15:42:04 +0100, "Dave (from the UK)"
 > <see-my-signature@southminster-branch-line.org.uk> wrote in
 > <44707c3d@212.67.96.135>:
 >
 >
 >>Thanks. I have never used my own functions in php, so I'll take a look
 >>at that.
 >
 >
 > The other thing to think about is how popen executes the commands. Given
 > the example, it looks as if it is running a shell and passing your
 > command string to it. The shell will be doing its own interpreting of
 > the quote characters and the '$' that it finds in the string.
 
 Yes, I think this is an issue. I've got something that works reasonably
 well now.
 
 http://www.althorne.org/witm/witm.php
 http://www.althorne.org/witm/witm.txt
 
 but there are a few issues, some of which I can probably solve, others I
 doubt I can.
 
 The producers of Mathematica sell a product webMathematica
 
 http://www.wolfram.com/products/webmathematica/index.html
 
 which I have anyway), but it is quite restrictive. It's designed to
 allow a very small subset of Mathematica to be used by anyone with
 access to the web. In contrast, I want the full functionality (or as
 much as I can get), but have it password protected.
 
 > I suspect that you would do better to create the whole of the input to
 > Mathematica as a string first, then make that string the parameter to
 > echo, putting it in single quotes:
 >   ... popen("echo '$string' | tee ...", "r") ...
 
 Unfortunately Mathematica seems to use just about every character that
 might cause a problem - *, $, ', ", `, /, <. >,  \ etc. In fact it has a
 shell escape:
 
 Mathematica 5.2 for Sun Solaris (UltraSPARC)
 Copyright 1988-2005 Wolfram Research, Inc.
 -- Motif graphics initialized --
 
 In[1]:= ! grep root /etc/passwd
 root:x:0:0:Super-User:/:/sbin/sh
 
 However, I have to be practical and some of these are very rarely used
 and often there is another way of doing something.
 
 > You need to do more if the string contains single quotes, but according
 > to a page I found on the web, PHP has a function for escaping shell args
 > that may do what you need (I have never used it).
 
 This gets more complicated by the minute.
 
 > While browsing round the PHP manual on the web I came across the
 > proc_open function - it looks as if it would let you call Mathematica
 > directly, writing to its input and reading from its output so avoiding
 > all the shell quoting and escaping issues.
 
 I got the feeling it was designed for bi-directional pipe use, so would
 give no advantage in my case, but perhaps I am wrong.
 
 That said, the programming interface between Mathematicas front end and
 the computational engine is published.
 
 http://documents.wolfram.com/v5/Add-onsLinks/MathLink/MathLinkIntroduction/2.13.1.html
 
 so one can write programs to interact with it. With a bi-directional
 pipe one could do a lot, but that would be a lot of work I think - far
 more than I am willing to attempt.
 
 --
 Dave K     MCSE.
 
 MCSE = Minefield Consultant and Solitaire Expert.
 
 Please note my email address changes periodically to avoid spam.
 It is always of the form: month-year@domain. Hitting reply will work
 for a couple of months only. Later set it manually.
 [Back to original message] |