0

我希望此代码自行刷新并将数据发布到 sendms.php,但不应重定向并保留在此 page.tus 上,每次刷新时下载新数据并发布到 sendms.php。请建议我任何想法?

  <?php
    $page = $_SERVER['PHP_SELF'];
     $sec = "15";
     header("Refresh: $sec; url=$page");
    $url=$_REQUEST['url'];
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

    $html= curl_exec($ch);
        curl_close($ch);

    //parsing begins here:
    $doc = new DOMDocument();
    @$doc->loadHTML($html);
    $nodes = $doc->getElementsByTagName('title');

    //get and display what you need:
    $title = $nodes->item(0)->nodeValue;
    $first = current(explode("|", $title));

    $to="888888888";
    header('Location: sendsms.php?to=' .$to .'&sms=' .$first);

    ?>
4

2 回答 2

0

任何标准刷新都不会重新发布数据。根据浏览器的不同,它会发出通常的 GET 请求,或者浏览器会要求您确认重新提交 POST 数据。

您可以通过在 html 中创建一个表单并将 POST 数据中所需的所有变量作为 < input type="hidden" > 添加到该表单中来完成您需要的操作。然后您可以使用 javascript 提交该表单(在所需的延迟之后 - 在您的情况下为 15 秒)。

于 2013-07-08T22:20:17.080 回答
0

我建议通过 crontab 运行它。

你有两个选择,第一个更好:

  1. 将文件作为 shell 脚本直接在服务器上运行。
  2. 使用 curl 或 wget 访问 Web 服务器上的文件。

第一个场景看起来像这样:

* * * * * /usr/bin/php /my/home/path/script.php

第二种情况类似:

* * * * * curl http://example.com/path/to/file/script.php

当然,这不完全是您所要求的。如果您希望此页面简单地位于 Web 浏览器中并每隔 n 秒重新加载一次,您可以使用 JavaScript 和一些 jQuery AJAX:

<script type="text/javascript">
var timer = setInterval(function () {
  $.post('/sendsms.php', { data: yourdata }, function (data) {
    console.log(data);
  });
}, 15000);
</script>

希望这会有所帮助!

于 2013-07-08T22:13:04.093 回答