【问题标题】:Running a php script in the background在后台运行 php 脚本
【发布时间】:2011-04-26 11:55:02
【问题描述】:

我有一个脚本需要很长时间才能处理,我称之为form1.php

现在我从 form1.php 发布到 form2.php。

在 form1.php 上,我要求用户输入他的电子邮件内容以发送所有部门的员工。

现在我需要的是,当我从 form1.php 发布到 form2.php 时,浏览器应该显示一条消息,说正在处理.. 邮件将被发送到所有员工的电子邮件地址,并且用户应该被重定向到 form2。 php 无需等待脚本向所有员工发送电子邮件,这可能需要一些时间。我希望这个脚本在后台运行,用户应该继续在现场进行其他工作。

脚本必须在后台做它应该做的事情

请告诉我如何做到这一点?

谢谢

【问题讨论】:

  • @mario 感谢您的链接。我不会称 Umar 为“新用户”——他从 2010 年 8 月开始提出问题。无论如何,他现在正走在启蒙之路上 ;-)

标签: php email


【解决方案1】:

AJAX 将满足您的需求。 AJAX 使用 Javascript 在后台执行 HTTP 调用。仍然使用 Javascript,您可以创建加载器或在页面中间显示 gif 加载器。我建议您不要使用框架,因为并非所有浏览器都支持。

引用 W3C(WWW 联盟):

AJAX 允许更新网页 通过交换小的异步 后台服务器的数据量 场景。这意味着它是 可以更新网络的某些部分 页面,无需重新加载整个页面 页面。

【讨论】:

  • 先生,我将页面发布到其他页面并使用 php 将电子邮件发送给所有员工。表单发布后如何触发 ajax 调用?
  • @Umar,第一个谷歌搜索结果:pronetworks.org/forums/…
  • @Umar,您只需执行一个 http 请求而不加载页面。每个 PHP 函数仍然可以工作并存在。
【解决方案2】:

为此,您可以使用iframe's.

【讨论】:

  • 如果你有 ajax 为什么要使用 iframe。
【解决方案3】:

您尝试过 cURL 吗?来自http://php.net/curl-init的一些例子

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2013-05-14
    相关资源
    最近更新 更多