如何在PHP脚本中静默运行外部PHP脚本?

时间:2012-10-24 22:12:37

标签: php

例如:

server-a.com/test.php 的内容:

echo 'hello world one';

// now I need to call server-b.com/test.php here silently
// without interfering with user experience

echo 'hello world two';

server-b.com/test.php 的内容:

mail($foo, $bar, $qux); header('location: http://google.com');


现在运行server-a.com/test.php应输出hello world one hello world two。即使成功调用server-b.com/test.php,它也不应重定向到google.com。

4 个答案:

答案 0 :(得分:3)

您可以使用file_get_contents()

file_get_contents("server-b.com/test.php");

Curl

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "server-b.com/test.php"); 
curl_setopt($ch, CURLOPT_HEADER, TRUE); 
curl_setopt($ch, CURLOPT_NOBODY, TRUE); // remove body 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
curl_exec($ch); 

答案 1 :(得分:0)

使用此函数file_get_contents():

file_get_contents("server-b.com/test.php");

答案 2 :(得分:0)

您可以使用Symfony2's Process component。 例如:

use Symfony\Component\Process\PhpProcess;

$process = new PhpProcess(<<<EOF
    <?php echo 'Hello World'; ?>
EOF
);
$process->run();

答案 3 :(得分:0)

您可以使用header_remove删除位置标头。包含server-b.com/test.php后,只需调用

header_remove('Location');