I’ve been working on a local app over the last few days and I’ve noticed that one of my ‘exec()’ functions to call an external program didn’t fire correctly. Upon further investigation it was obvious that the program did execute, but it quit prematurely as an important line utilizing ‘file_get_contents()’ didn’t retrieve the contents of the file specified.
The file is a plaintext file without an extension. I’m guessing that ‘file_get_contents()’ is treating the file as a directory since there is no extension? It’s strange because if I manually execute the same program from a web browser, everything works perfectly.
Here’s an example line for clarity –
while(file_get_contents('plaintextfile') == "something"){
/// Do This
}
The above works just fine when I visit /program.php from a web browser, but when calling it like this it gives me a file/folder not found error for ‘plaintextfile’.
exec('php /program.php', $output);
foreach($output as $output){
print $output . "<br>";
}
Thanks in advance to anyone who can shed some light on this situation. I’m really puzzled by this…
PHP as executed from the browser and executed by the command line (in the
exec()call) may use different php.ini configurations, and may have different file search paths. The best course of action is to supply the full path toplaintextfile.