运行PHP脚本而不输出到浏览器

汤米·凯拉(Tommy Kaira)

我有一个非常费力的PHP脚本,该脚本对其他服务器进行了几次api调用。我需要运行此脚本以将服务器上的某些数据与远程服务器上的数据保持同步。

我希望每次特定类型的用户访问特定页面时都启动此脚本。

但是,我的问题是,如果有资格的用户访问此页面,则页面加载时间是可喜的,即使脚本处理的数据也不会以任何方式影响页面本身。

因此,我想知道的是,如何在相同条件下运行此脚本,但只能在服务器上运行它?

换句话说,如何运行此脚本并停止浏览器等待其输出?

编辑:有用的信息:使用XAMPP for Windows,PHP 5.5,Apache 2.4。

编辑2:使用curl似乎是最好的选择,但它并不想实际运行我的脚本。

这是电话:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://localhost/tool/follow/PriceTableUpdate.php');
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 1);
curl_exec($ch);

这是实际的PriceTableUpdate.php:

<?php  
ini_set('max_execution_time', 3600);
$marketData=simplexml_load_file("http://www.eve-markets.net/api/xml?listid=20158key=JKgLjgYvlY6nP");
foreach ($marketData->marketList->type as $type) {
     $ItemID = (int)$type['id'];
     $ItemBuy = $type->buy->price;
     $ItemSell = $type->sell->price;
     $ItemMedian = $type->median->price;
     mysqli_query($con,"UPDATE piprices SET `ItemBuyPrice` = $ItemBuy, `ItemSellPrice` = $ItemSell, `ItemMedianPrice` =$ItemMedian WHERE `piprices`.`ItemID` = $ItemID");
 }
?>

编辑3:使用上述DOES可以工作,以防万一有人想再次问这个问题。但是,您必须记住,由于使用的是curl,因此php文件不再使用之前设置的变量,因此您将需要在php文件中再次定义数据库连接。

弗洛里斯

您可能会通过该onLoad事件单独调用php脚本-也就是说,您等到页面加载完毕,然后“在后台”调用该其他脚本。后者可以通过以下几行代码来完成(我通过以下链接找到了这一点:http://www.paul-norman.co.uk/2009/06/asynchronous-curl-requests/由@Gavriel在评论中发布其他答案之一):

<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://www.yoursite.com/background-script.php');
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 1);

curl_exec($ch);
curl_close($ch);
?>

在页面中的任何位置添加此代码将使脚本在执行时不会延迟页面加载-onLoad在这种情况下,您甚至不需要使用事件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从浏览器启动/停止在后台运行的php脚本

来自分类Dev

如何从Android的浏览器运行php脚本?

来自分类Dev

使用curl下载图像,成功运行但输出到浏览器

来自分类Dev

我如何显示输出到终端而不是浏览器的php / html代码?

来自分类Dev

使用CSVHelper将流输出到浏览器

来自分类Dev

脚本运行时如何在浏览器中输出内容?

来自分类Dev

在PHP中,即使浏览器退出后,如何确保脚本将继续运行直到完成?

来自分类Dev

使用 php 运行 python 脚本 - 在控制台中而不是在 Web 浏览器中工作

来自分类Dev

在浏览器中使用“监视”实时输出Shell脚本?

来自分类Dev

如何防止浏览器中的“停止运行此脚本”?

来自分类Dev

关闭浏览器后,Google应用脚本停止运行

来自分类Dev

运行用户脚本时setInterval使我的浏览器崩溃?

来自分类Dev

使用PowerShell脚本检查正在运行的浏览器

来自分类Dev

如何防止浏览器中的“停止运行此脚本”?

来自分类Dev

运行用户脚本时setInterval使我的浏览器崩溃?

来自分类Dev

关闭浏览器后,Google应用脚本停止运行

来自分类Dev

Nightwatch脚本在浏览器打开之前运行代码

来自分类Dev

Bash脚本未在浏览器上运行

来自分类Dev

脚本正确但无法在浏览器中运行

来自分类Dev

php exec文件从终端运行,而不是从浏览器运行

来自分类Dev

使用 Node.js 的 https.request() 并输出到浏览器

来自分类Dev

PHP Selenium Webdriver读取浏览器输出

来自分类Dev

将shell脚本中的二进制文件导出到浏览器

来自分类Dev

在浏览器中访问https站点的PHP脚本

来自分类Dev

如果关闭浏览器,PHP代码是否继续运行?

来自分类Dev

如何直接从Geany在浏览器中运行PHP代码?

来自分类Dev

浏览器由于脚本长时间运行而变得无响应-如何找到负责的脚本?

来自分类Dev

每个浏览器会话一次运行脚本,但最后冻结脚本

来自分类Dev

从Web浏览器在服务器上执行长时间运行的脚本

Related 相关文章

  1. 1

    从浏览器启动/停止在后台运行的php脚本

  2. 2

    如何从Android的浏览器运行php脚本?

  3. 3

    使用curl下载图像,成功运行但输出到浏览器

  4. 4

    我如何显示输出到终端而不是浏览器的php / html代码?

  5. 5

    使用CSVHelper将流输出到浏览器

  6. 6

    脚本运行时如何在浏览器中输出内容?

  7. 7

    在PHP中,即使浏览器退出后,如何确保脚本将继续运行直到完成?

  8. 8

    使用 php 运行 python 脚本 - 在控制台中而不是在 Web 浏览器中工作

  9. 9

    在浏览器中使用“监视”实时输出Shell脚本?

  10. 10

    如何防止浏览器中的“停止运行此脚本”?

  11. 11

    关闭浏览器后,Google应用脚本停止运行

  12. 12

    运行用户脚本时setInterval使我的浏览器崩溃?

  13. 13

    使用PowerShell脚本检查正在运行的浏览器

  14. 14

    如何防止浏览器中的“停止运行此脚本”?

  15. 15

    运行用户脚本时setInterval使我的浏览器崩溃?

  16. 16

    关闭浏览器后,Google应用脚本停止运行

  17. 17

    Nightwatch脚本在浏览器打开之前运行代码

  18. 18

    Bash脚本未在浏览器上运行

  19. 19

    脚本正确但无法在浏览器中运行

  20. 20

    php exec文件从终端运行,而不是从浏览器运行

  21. 21

    使用 Node.js 的 https.request() 并输出到浏览器

  22. 22

    PHP Selenium Webdriver读取浏览器输出

  23. 23

    将shell脚本中的二进制文件导出到浏览器

  24. 24

    在浏览器中访问https站点的PHP脚本

  25. 25

    如果关闭浏览器,PHP代码是否继续运行?

  26. 26

    如何直接从Geany在浏览器中运行PHP代码?

  27. 27

    浏览器由于脚本长时间运行而变得无响应-如何找到负责的脚本?

  28. 28

    每个浏览器会话一次运行脚本,但最后冻结脚本

  29. 29

    从Web浏览器在服务器上执行长时间运行的脚本

热门标签

归档