Re: [請益]自動執行網頁php
※ 引述《wild0921 (我要幸福)》之銘言:
: ※ 引述《GALINE (天真可愛CQD)》之銘言:
: : 感覺像是你想做這樣的事情
: : - 從 DB (或什麼地方)撈出 100 個 URL
: : - 同時戳他們,你不需要管回應資料,只想快點戳完(所以想要多執行序)
: : 其實你有主機實體權限的話,可以用 command line + php 幹一些事情。像是:
: : ----------------------------------------------
: : <?php
: : $urls = getAllURL(); // 看你原本怎麼撈出 100 個 URL
: : foreach ($urls as $url) {
: : popen("curl {$url} > /dev/null 2> /dev/null", 'r');
: : }
: : ----------------------------------------------
: : popen() 執行的指令會跟 PHP 分不同的 process 平行跑完。不過 PHP 會等他們都跑完
: : 之後才結束
: : 如果有需要把回應存下來,那麼把指令改成
: : "curl {$url} > /檔案/的/路徑 2>/dev/null"
: : 就可以了
: : 不需要把 lynx 扛出來跑 Javascript...
: TO GALINE YES~~~我的確是想要這樣做沒有錯
: 我剛剛嘗試著用你上面的語法, popen有執行,但是變數帶不過去 T_T
: 使用的$url有帶三個變數, 但是對方網頁回覆error 找不到第二個變數
: 於是乎我把, $url撈出來手動貼到網頁上面執行, 變數有傳過去, 有實現
: 但是我在curl接學網站上面看說get 可以直接接在網址後面即可實現, 真是詭異
嗯....解決了我的問題, 所以上來分享一下如何解決
popen("curl {$url} > /dev/null 2> /dev/null", 'r');
少了一個 1, 我沒有故意要噹的意思, 只是後來才發現是這問題, 想說分享一下,
>> popen("curl {$url} 1> /dev/null 2> /dev/null", 'r');
用法:
1 如果沒有error要在哪裡顯示
2 如果error要在哪裡顯示
附加一個 沒有提到, 但有可能會用到的東西 "&"
popen("curl {$url} 1> /dev/null 2> /dev/null &", 'r');
&主要是在背景執行
參考網址:http://bbs.csdn.net/topics/10438612
另外curl 在 command line 會有參數的值有編碼問題
一般在瀏覽器上面都會自動完成, 在是如果再linux上面就不會自動完成
所以要把帶過去的參數先用urlencode()包起來, 再丟過去
我還在研究位蝦咪丟過去之後, 不用urldecode()就可以直接用
以上
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.45.236
※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1421056644.A.82C.html
推
01/13 15:53, , 1F
01/13 15:53, 1F
推
01/13 22:33, , 2F
01/13 22:33, 2F
→
01/13 22:34, , 3F
01/13 22:34, 3F
→
01/13 22:35, , 4F
01/13 22:35, 4F
→
01/13 22:35, , 5F
01/13 22:35, 5F
→
01/13 22:35, , 6F
01/13 22:35, 6F
→
01/13 22:36, , 7F
01/13 22:36, 7F
→
01/13 22:37, , 8F
01/13 22:37, 8F
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章