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 ... ?>