刷新页面,每次刷新时都应发布数据?

时间:2013-07-08 19:59:47

标签: php curl

我想要这个代码刷新自己&将数据发布到sendsms.php但不应重定向并保留在此页面上。每次刷新时都会下载新数据并发布到sendsms.php。 PLZ建议我有什么想法吗?

  <?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);

    ?>

2 个答案:

答案 0 :(得分:0)

我建议通过crontab运行它。

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

  1. 直接在服务器上以shell脚本运行文件。
  2. 使用curl或wget访问Web服务器上的文件。
  3. 第一种情况看起来像这样:

    * * * * * /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>
    

    希望这有帮助!

答案 1 :(得分:0)

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

您可以通过在html中创建表单并将POST数据中所需的所有变量添加到该表单中来执行您所需的操作&lt;输入类型=&#34;隐藏&#34;取代。然后,您可以使用javascript提交该表单(在所需的延迟后 - 在您的情况下为15秒)。