Execute php file from another php
I want to call a PHP file that starts like
<?php
function connection () {
//Statements
}
I call from the PHP like this:
<?php
exec ('/opt/lampp/htdocs/stuff/name.php');
?>
I get:
line1-> cannot open ?: No such file
line 3 //Connection: not found
line 4 Syntax errror: "("
Why doesn't this correctly execute the name.php file?
It's trying to run it as a shell script, which interprets your <?php
token as bash, which is a syntax error. Just use include()
or one of its friends:
For example, in a.php
put:
<?php
print "one";
include 'b.php';
print "three";
?>
In b.php
put:
<?php
print "two";
?>
Prints:
eric@dev ~ $ php a.php
onetwothree
exec is shelling to the operating system, and unless the OS has some special way of knowing how to execute a file, then it's going to default to treating it as a shell script or similar. In this case, it has no idea how to run your php file. If this script absolutely has to be executed from a shell, then either execute php passing the filename as a parameter, e.g
exec ('/usr/local/bin/php -f /opt/lampp/htdocs/.../name.php)') ;
or use the punct at the top of your php script
#!/usr/local/bin/php
<?php ... ?>