2012-10-26 15 views
0

什麼我的網頁做的是:有可能在cron中使用ajax,jquery頁面?

  1. 下載從不同的服務器(first.php)
  2. PHP腳本解析值
  3. 解析值與Ajax調用
  4. 在下發(數組AJAX所謂的)頁面(second.php)有一些MySQL的查詢
  5. 如果值傳遞條件,值將被寫入數據庫

....所以,當我運行我的first.php ..它加載second.php,一切都很好..但我想知道,如果它可以讓它由cron使?

如果不是,我該怎麼辦? 謝謝。

回答

4

在這方面您需要了解某些事情。

首先是PHP可以作爲web server module或作爲standalone executable運行。當您將其作爲Web服務器模塊運行時,您可以通過瀏覽器打開它,所有相關的Web技術(html/css/js)等都會被解析並協同工作。

當你從命令行使用cron運行它,如說/usr/bin/php mywebpage.php 那麼php可執行文件不解析/理解其他網絡技術,所以你的網頁將失敗。

這有兩種解決方法:

  1. 重寫只有那些支持web的部分,使得AJAX/JS的東西被 將由PHP來處理。拇指的基本規則是,如果你是運行CLI腳本的 ,它應該只包含核心PHP。這是首選方式。您需要將ajax調用移動到同一個文件中,並像任何常規程序一樣將其作爲單個執行流。

  2. 如果由於某些原因您無法完成上述操作,您可以嘗試如下操作: /path/to/browser http://mysite/mywebpage.php。在這裏你正在做的是,你正在運行一個瀏覽器可執行文件,然後調用網頁的URL。這樣頁面就在瀏覽器的環境中執行,並且能夠解析和理解ajax/js調用。

+0

哦,我明白了。那麼,這是不可能的? – user1666761

+0

@ user1666761:我剛剛在我的回答中添加了幾個解決方法 – raidenace

+0

您的解決方法都編號爲#1。 :) – Barmar

0

是的,你可以用下面的方式創建一個cron作業。

1)下載從不同的服務器的陣列(first.php)

在first.php

3 2)PHP腳本解析值)包括該第二文件,second.php通過include_once其執行的MySQL查詢

4)如果一切正確,將它們插入數據庫。

+0

我應該在哪裏把我的JavaScript(谷歌地理編碼)。由於這個原因,我需要ajax .. – user1666761

+0

在將它們發送到數據庫之前,您可以使用jquery對第三個php頁面進行ajax調用並傳遞位置來獲得座標。在接收到座標後,您可以將這些值保存在第三個腳本本身的mysql中。 –

+0

對不起,我不認爲你可以使用jron請求與cron作業。可能是您可以使用$ response = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true_or_false') –

相關問題