php獲取遠端資料,避免頁面卡死問

2021-06-20 18:27:28 字數 1044 閱讀 1222

大家都知道php是解釋執行語言,**是順序執行。如果中間有個地方卡住,那麼程式就會一直卡在這裡,不會往下執行,直到超時。看下面一段**:

$content=file_get_contents();

echo$content;

由於使用file_get_contents,並且是從乙個url裡獲取資料,相當於http請求www.baidu.com,得到返回的html內容,如果這個請求一直不返回內容或者很慢,結果就會拖慢整個程式。

對於別人的,我們總是一無所知,所以應當對這樣的程式做一些處理,使其能夠順利執行完成。

1、增加遠端請求超時處理

如果要獲取遠端資料,並且這個資料並不是頁面的必須資料。那麼我們可以使用超時處理,如果請求超時就跳過。在php裡可以使用fsockopen很好的處理這個問題。乙個簡單的示例:

2、使用ajax進行處理

不在php端處理,而是交到客戶端,利用ajax來請求資料。這對使用者來說也更加友好。當然,如果需要請求的是其他站點的位址,由於ajax不能跨域,所以需要在本地建立乙個中轉的檔案。

PHP技巧 何避免頁面重新整理資料重複寫入資料庫

何避免頁面重新整理資料重複寫入資料庫 當表單的資料是提交給本頁面處理並寫入資料庫時,點提交後,重新整理頁面的話使資料重複寫入資料庫。網上搜尋一下,發現了不少的解決方案 一 把一頁面分開為兩個,資料提交給另乙個頁面處理,之後再跳到輸入頁面。優點 避免了重新整理的影響,並可連續提交資料。缺點 當使用者在...

PHP 簡單獲取頁面內容

無需使用 curl 和http client 庫,php 中原生的file 和file get contents 函式均可實現,只要檔名引數為url 即可。下面是來自php 幫助檔案的說明 來自於fopen 函式 如果filename 是 scheme 的格式,則被當成乙個url php 將搜尋協議...

PHP避免重新整理頁面重複提交

情景 從html提交資料到x.php 在x.php中 post資料寫庫並且顯示,當x.php重新整理時,入庫操作會被再次執行,用了if post 並且在程式結尾給 post賦空值,但是重新整理的時候post依然有值,求知道怎麼避免反覆提交。關鍵 1.資料從html過來的,不是php 2.要在x.ph...