看板 PHP 關於我們 聯絡資訊
s66449:我有疑問耶...因為我是第一次寫這東西 到底那隻xx.php 02/18 00:47
s66449:長怎樣???我直接用cron去執行我那個網頁就好了 為什麼還要 02/18 00:48
s66449:再寫一隻xx.php去執行我那個網頁?? 02/18 00:49
s66449:我有嘗試去google 可是我不知怎麼下關鍵字> < 02/18 00:51
s66449:找到的都不是我要的 02/18 00:51
假設我們有兩隻php,一隻是web.php,一隻是fromCron.php web.php:使用者操作,儲存資料 fromCron.php:讀取資料,進行使用者指定動作 (我是覺得寫在一起很怪啦,也不是不能寫在一起) crontab裡面可能有一行 * * * * * /usr/local/bin/php /我的路徑/fromCron.php 然後 fromCron.php可能 $data = 讀取資料(); if (時間是使用者指定的時間) { 進行動作 } 這是我的想法啦(沒想到還是要多發一篇@.@) xx.php執行的是使用者要求的東西 不是執行那個網頁 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.231.172.151
s66449:謝謝你這麼熱心...我有個疑問 試著在shell下執行我那個php 02/18 12:11
s66449:結果執行的結果指示出現整個網頁的原始碼 而不是按了scan 02/18 12:12
s66449:button 完後的結果 是我那個網頁還得要做什麼設定嗎?? 02/18 12:12
這我可能沒注意到 你的web.php可能除了 操作、儲存 外 還有執行的動作 但是php cli模式下,就當成一般的script執行 web上的<html>等標籤,在cli模式下,因為沒有瀏覽器解釋 所以都是直接吐給你看的 (所以其實你要將fromCron.php改用其他語言, 變成fromCron.pl,或是寫成執行檔,其實也沒差, 只不過反正web都用php寫了,fromCron的部份用php寫, 資料庫的存取就不用另外再學一套...如果用的是資料庫的話:p 另外一點是,你的執行部分共用比較彈性) 假設web.php的內容是: [code] <?php if (GET或POST輸入) { 依據GET或POST動作 *包含儲存動作 *執行(scan) } ?>呈現頁面 [/code] 那我們就必須把執行的部份區分出來 可能是另外一個頁面,或是額外的function (這邊參數自己看要哪些, 怎麼處理,這裡只是範例) scan.php [code] function scan($host, $port) { ... } [/code] web.php的部份 執行就改成 [code] require('scan.php'); scan($host, $port); [/code] 然後fromCron.php的進行動作部分 可能就改成 [code] require('scan.php'); scan($host, $port); [/code] 這樣之類的... 如果不懂php-cli的話 其實還有個方法,比較耗費資源 你把執行部分額外變成一個可以執行的網址 就可以寫成一般網頁的形式XD (不過內容無意義就是了) crontab的內容可能是 * * * * * wget http://localhost/PATH/fromCron.php 就是crontab去抓網頁 (當然這樣可能會多抓網頁就是了XD) ps.以上提的也只是一種實作方法啦 ※ 編輯: weiyucsie 來自: 125.231.174.29 (02/18 14:05)
s66449:我有點搞混了...怎麼又會多一個scan.php 總共要寫三個php嗎 02/18 19:01
s66449:fromCron.php就是ㄧ個空白網頁 然後裡面都是去執行web.php 02/18 19:02
s66449:使用者要求的東西嗎?? 02/18 19:03
s66449:還想要一下@@" 因為你說在shell下執行php的話 因為沒瀏覽器 02/18 19:04
s66449:支援 所以執行結果都是整個畫面的程式碼 要是有人說一個 02/18 19:04
s66449:php程式能不能在shell下執行 只要能跑出網頁原始檔就代表 02/18 19:05
s66449:這支php是可以在shell執行的意思嗎?? 02/18 19:05
s66449: 最後打的那段cron跟前面的* * * * * /usr/local/bin/php.. 02/18 19:11
s66449:有什麼不同??不都是任何時間去檢查fromCron這隻網頁嗎?? 02/18 19:12
s66449:ㄧ直問...真是不好意思> < 02/18 19:13
weiyucsie:那... 你再描述一下你目前想的好了>.< 02/18 20:09
weiyucsie:沒什麼不同 只不過一個是經過網頁伺服器(wget) 02/18 20:10
weiyucsie:一個沒有 02/18 20:10
s66449:我想把我理解的講出來 不知道有沒有誤解你的意思 02/18 22:33
s66449:我就再寫一隻formCron.php程式 然後再去主機加上 02/18 22:34
s66449:* * * * * /usr/local/bin/php /我的路徑/fromCron.php 02/18 22:34
s66449:讓fromCron每天不斷的去check web.php看使用者有沒有按下 02/18 22:35
s66449:scan button 然後去執行使用者要求的東西 02/18 22:37
s66449:然後因為我所有執行的指令都在web.php 所以我得要再把 02/18 22:38
s66449:那些指令程式碼寫進fromCron.php 是這樣嗎?? 02/18 22:39
s66449:那我那個網頁是要user輸入定時掃瞄時間的 那要怎麼跟 02/18 22:41
s66449:fromCron.php網頁做結合呢?? 02/18 22:43
weiyucsie:"check web.php看使用者有沒有按下scan button" 關於這 02/18 23:48
weiyucsie:我是想說 scan button是即時的掃描 02/18 23:48
weiyucsie:(這邊你的掃描應該等於執行的動作吧?) 02/18 23:48
weiyucsie:fromCron.php則是使用者送出資料後,時間到才去執行的 02/18 23:49
weiyucsie:所有執行的指令都在web.php 要寫進fromCron.php 02/18 23:50
weiyucsie:這是我想說額外存一個php,其他兩個php用require的部份 02/18 23:51
weiyucsie:你的fromCron寫進crontab後,每分鐘會被執行 02/18 23:52
weiyucsie:那就看你怎麼判斷要不要執行 來達到所指定的幾分鐘 02/18 23:55