本文目錄一覽:
PHP如何調用JS函數並獲取其返回的數據?
人家問的是PHP調用JS函數。。。樓主,我可以很負責的告訴你,這是不可能的。PHP是在
伺服器端
運行的腳本,而JS是在瀏覽器運行的腳本,你要調用可以,直接echo個script就可以,但是獲取
返回值
是不可能的,只有讓JS把返回值通過AJAX發送給PHP才可以。
php請求url並接收返回值
方法1: 用file_get_contents 以get方式獲取內容
[php] view plaincopyprint?
?php
$url=”;
$html = file_get_contents($url);
echo $html;
?
方法2: 用fopen打開url, 以get方式獲取內容
[php] view plaincopyprint?
?php
$fp = fopen($url, ‘r’);
//返回請求流信息(數組:請求狀態,阻塞,返回值是否為空,返回值http頭等)
[php] view plaincopyprint?
stream_get_meta_data($fp);
[php] view plaincopyprint?
while(!feof($fp)) {
$result .= fgets($fp, 1024);
}
echo “url body: $result”;
fclose($fp);
?
如何通過php的curl模擬ajax請求,獲取其返回值
這個需要配合js,打開一個html頁面,首先js用ajax請求頁面,返回第一個頁面信息確定處理完畢(ajax有強制同步功能),ajax再訪問第二個頁面。(或者根據伺服器狀況,你可以同時提交幾個URL,跑幾個相同的頁面)
參數可以由js產生並傳遞url,php後台頁面根據URL抓頁面。然後ajax通過php,在資料庫或者是哪裡設一個標量,標明檢測到哪裡。由於前台的html頁面執行多少時候都沒問題,這樣php的內存限制和執行時間限制就解決了。
因為不會浪費大量的資源用一個頁面來跑一個瞬間500次的for循環了。(你的500次for循環死了原因可能是獲取的數據太多,大過了php限制的內存)
不過印象中curl好像也有強制同步的選項,就是等待一個抓取後再執行下一步。但是這個500次都是用一個頁面線程處理,也就是說肯定會遠遠大於30秒的默認執行時間。
php 介面判斷客戶端後返回值的獲取
這個在伺服器用file_get_contents是肯定沒用的,只能從客戶端發送請求,可以考慮在頁面尾部加一個隱藏層,然後把介面的信息寫在這個層上面,再用js去判斷一下
原創文章,作者:TUIH,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/131938.html