PHP程序后台调用
时间:2007-07-23 来源:yuyii
网页是互动的,但是不是所有的任务都需要等互动完的。我这里就碰到这样个问题,网络架构相对复杂了点,然后通过WEB服务器获得用户请求后,向另外的服务器发送新的请求去处理问题。但是这样势必导致速度慢,不论是网络还是服务器的,都可能影响。想办法获得用户请求后,就把请求发出去,同时给用户一个其他的返回页面,而不需要用户等这个请求结束。
办法如下,通过fsockopen去开其他页面:
a.php:用户请求的页面
b.php:“后台”执行的页面,即a.php去调用的页
a.php如下:
?php
if (isset($_POST['user_request']))
$user_request = $_POST['user_request'];
$fp = fsockopen("10.1.2.187",80,$errno,$errmsg);
fputs($fp,"GET /b.php?user_request=$user_request\r\n\r\n");
fclose($fp);
echo "b.php is running now";
?>
b.php如下:
?php
if (isset($_GET['user_request'])){
$user_request = $_GET['user_request'];
$hand = fopen('log.txt','w');
sleep(10); //停10秒再做此操作
fwrite($hand,"user request is $user_request");
fclose($hand);
}
?>
这样10秒后log.txt文件就会生成相应内容。感觉还是比较有用的。
办法如下,通过fsockopen去开其他页面:
a.php:用户请求的页面
b.php:“后台”执行的页面,即a.php去调用的页
a.php如下:
?php
if (isset($_POST['user_request']))
$user_request = $_POST['user_request'];
$fp = fsockopen("10.1.2.187",80,$errno,$errmsg);
fputs($fp,"GET /b.php?user_request=$user_request\r\n\r\n");
fclose($fp);
echo "b.php is running now";
?>
b.php如下:
?php
if (isset($_GET['user_request'])){
$user_request = $_GET['user_request'];
$hand = fopen('log.txt','w');
sleep(10); //停10秒再做此操作
fwrite($hand,"user request is $user_request");
fclose($hand);
}
?>
这样10秒后log.txt文件就会生成相应内容。感觉还是比较有用的。
相关阅读 更多 +
排行榜 更多 +