Stack Overflow is a community of 4.7 million programmers, just like you, helping each other.

Join them; it only takes a minute:

Sign up
Join the Stack Overflow community to:
  1. Ask programming questions
  2. Answer and help your peers
  3. Get recognized for your expertise

How would I make my server run a php script by triggering it manually using php? Basically I have a pretty big cronjob file that is ran every 2 hours, but I want to be able to trigger the file manually myself without having to wait for it to load (i want it to be done on the server's side).

EDIT: I want to execute the file from a php file... Not command line.

share|improve this question
2  
Just run the same command the cron is? Or just do php file.php? – Rocket Hazmat Dec 9 '11 at 19:31
1  
Why don't you just copy the command from the crontab and paste it into the command line? – Ben Lee Dec 9 '11 at 19:32
    
@Rocket I want to do it from a php file – domino Dec 9 '11 at 19:35
    
Thanks for 3 down votes and 6 incorrect answers. Thanks for nothing. – domino Dec 9 '11 at 19:49
9  
The answers were only incorrect because you didn't include vital details in your question. Given the details you provided, the answers are 100% correct. Now that you have described what you're actually trying to do, the answers will improve. Very simple, you have no reason to be disgruntled. People are trying to help. – Chris Baker Dec 9 '11 at 19:55
up vote 49 down vote accepted

You can invoke a PHP script manually from the command line

hello.php
<?php
 echo 'hello world!';
?>

Command line:
php hello.php

Output:
hello world!

See the documentation: http://php.net/manual/en/features.commandline.php


EDIT OP edited the question to add a critical detail: the script is to be executed by another script.

There are a couple of approaches. First and easiest, you could simply include the file. When you include a file, the code within is "executed" (actually, interpreted). Any code that is not within a function or class body will be processed immediately. Take a look at the documentation for include (docs) and/or require (docs) (note: include_once and require_once are related, but different in an important way. Check out the documents to understand the difference) Your code would look like this:

 include('hello.php');
 /* output
 hello world!
 */

Second and slightly more complex is to use shell_exec (docs). With shell_exec, you will call the php binary and pass the desired script as the argument. Your code would look like this:

$output = shell_exec('php hello.php');
echo "<pre>$output</pre>";
/* output
hello world!
*/

Finally, and most complex, you could use the CURL library to call the file as though it were requested via a browser. Check out the CURL library documentation here: http://us2.php.net/manual/en/ref.curl.php

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.myDomain.com/hello.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true)

$output = curl_exec($ch);
curl_close($ch);
echo "<pre>$output</pre>";
/* output
hello world!
*/

Documentation for functions used

share|improve this answer
    
I want to do it from a php file not command line. – domino Dec 9 '11 at 19:36
    
That would have been very useful information to include in your question! :P See the edit, I discuss the numerous ways to call one PHP script from another. – Chris Baker Dec 9 '11 at 19:55
    
Thanks a lot for the lengthy reply! – domino Dec 9 '11 at 19:58

The OP refined his question to how a php script is called from a script. The php statement 'require' is good for dependancy as the script will stop if required script is not found.

#!/usr/bin/php
<?
require '/relative/path/to/someotherscript.php';

/* The above script runs as though executed from within this one. */

printf ("Hello world!\n");

?>
share|improve this answer

you can use the backtick notation:

`php file.php`;

You can also put this at the top of the php file to indicate the interpreter:

#!/usr/bin/php

Change it to where you put php. Then give execute permission on the file and you can call the file without specifying php:

`./file.php`

If you want to capture the output of the script:

$output = `./file.php`;
echo $output;
share|improve this answer

If it is a linux box you would run something like:

php /folder/script.php

On Windows, you would need to make sure your php.exe file is part of your PATH, and do a similar approach to the file you want to run:

php C:\folder\script.php
share|improve this answer

On the command line:

> php yourfile.php
share|improve this answer

Open ssh and execute the command manually?

php /path/to/your/file.php
share|improve this answer

to "chain" another php program from within your code, use "header"

header("Location:index.php?page=menus");

share|improve this answer

I think this is what you are looking for

<?php include ('Scripts/Php/connection.php');
//The connection.php script is executed inside the current file ?>

The script file can also be in a .txt format, it should still work, it does for me

e.g.

<?php include ('Scripts/Php/connection.txt');
//The connection.txt script is executed inside the current file ?>
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.