php請求數據
Ⅰ php請求第三方數據方法
方法有很多,其中有file_get_contents把數據讀到一個字元串中,還有一個是curl方式,兩種方式有所不同,查一下就知道區別了
Ⅱ php模擬post請求,獲取不到數據
這個問題我沒見過,很感興趣
類似的問題我見過一些。您是不是還上傳了什麼東西,然後請你把上傳上限復原,如果就是兩個字元串的話不用那麼大。如果提示你大小出現問題就是別的問題了
修改配置的話,記得重啟Apache
然後我的解決方法就是,把代碼刪除,重打一遍
只是傳兩個字元串我不信不好使
還有一個很惡心的問題,緩存
如果再不行就去重新建一個文件測試下。
Ⅲ php發送get,post請求的幾種方法
POST方法比較適合用於發送一個保密的(比如信用卡號)或者比較大量的數據到伺服器,但速度慢。而Get方法會將所要傳輸的數據附在網址後面,然後一起送達伺服器,因此傳送的數據量就會受到限制且不安全,但是執行效率卻比 Post方法好。具體來說如下:
1、Get將表單中數據的按照variable=value的形式,添加到action所指向的URL後面,並且兩者使用「?」連接,而各個變數之間使用「&」連接;Post是將表單中的數據放在form的數據體中,按照變數和值相對應的方式,傳遞到action所指向URL。
2、Get是不安全的,因為在傳輸過程,數據被放在請求的URL中,而如今現有的很多伺服器、代理伺服器或者用戶代理都會將請求URL記錄到日誌文件中,然後放在某個地方,這樣就可能會有一些隱私的信息被第三方看到。另外,用戶也可以在瀏覽器上直接看到提交的數據,一些系統內部消息將會一同顯示在用戶面前。Post的所有操作對用戶來說都是不可見的。
3、Get傳輸的數據量小,這主要是因為受URL長度限制;而Post可以傳輸大量的數據,所以在上傳文件只能使用Post(當然還有一個原因,將在後面的提到)。
4、Get限制Form表單的數據集的值必須為ASCII字元;而Post支持整個ISO10646字元集。
5、Get是Form的默認方法。
Ⅳ thinkphp怎樣獲取ajax請求數據
一般將前台頁面搜索結果中,不喜歡的內容(鏈接),刪除掉,因為整個網站的編程框架式thinkphp,運用js中的ajax對頁面進行響應,調用後台php介面,實現前台和後台資料庫的同時更新.
首先我們需要做的就是在前台頁面中添加一個文本「刪除」,可以這么添加:
代碼如下:
<a href="javascript:void(0);" id= "<php>echo $val[id]</php>" class="delete" >刪除</a>
上面的html代碼的意思:就是給刪除添加一個href,這個href是個js函數,類似於超鏈接的作用,當然對於我這樣的新手在剛開始的時候會有疑惑,我們平時的超鏈接不是這樣的,網頁中很多的javascript:void(0),那程序怎麼知道用戶點擊刪除後,會響應其真正對應的js函數呢?別急,這就是為什麼會為刪除添加id以及class這樣的標簽,相信我把js中的代碼公布出來以後你就會明白了,代碼如下:
jQuery(".list a.delete").click(function(){
if(confirm("你確定要刪除嗎?")){
var _this=this;
var id = jQuery(_this).attr("id");
jQuery.ajax({
url : '/Search/index.php/Jason/delete?',
data : {'id':id},
dataType : 'json',
success : function(data){
var del = data.del;
if(del == 1){//刪除成功
jQuery("#"+id).parents(".list").remove();
}else{//刪除失敗
alert("刪除失敗");
}
}
});
}
});
大家看函數的頭部:jQuery(".list a.delete").click(),jQuery後面的標簽是很重要的,這就保證了jquery很准確的響應頁面中用戶點擊的「位置」,添加的事件為click(),在click里添加響應事件的代碼:var id = jQuery(_this).attr("id");獲取a對應的id,因為這個id是我們刪除資料庫時用到的鏈接id,當然這種直接明文的方式不好,在這里只是介紹整個響應過程。調用ajax,實現非同步的運行整個過程。我們設置了js接受的是json串,這里的方式應該有很多種吧,我沒有去嘗試,大家要是有興趣可以自行嘗試一下。/Search/index.php/Jason/delete?這句話就是js去請求php的介面,php介面對用的代碼如下:
注意ajax在求php介面時的路徑,也就是delete函數必須放在JasonAction.class.php中,此例子是必須這樣的:
代碼如下:
public function delete(){
if($this->isGet()){
$userId = session("uid");//用戶登錄
if(!empty($userId)){
$a = M('***');
$id = $this->_get('id');
$result=$a->where("id=$id")->delete();//刪除
if($result > 0){
$arr = array("del"=>'1');
}else{
$arr = array("del"=>'0');
}
$json_str = json_encode($arr);
echo $json_str;//返回給js
}
}
}
相信大家對上面的代碼不會陌生吧,整個過程都是thinkphp框架內部配置完畢的.
var del = data.del;這句是接受php代碼返回來的json串中del這個key的value,進而在前台進行頁面更新和響應.
復制代碼代碼如下:
if(del == 1){//刪除成功
jQuery("#"+id).parents(".list").remove();//這句話就是後台刪除成功後,直接在前台對響應的div進行刪除,這樣性能就會很快,無需進行後台數據的重新提取至前台頁面中,
}else{//刪除失敗
alert("刪除失敗");
}
整個響應的過程就是這樣,至於效果優化,是優化和細化方面的問題,後來,身邊的同事又告訴我前台移除響應鏈接的另一個動態效果:
即將:
代碼如下:
jQuery("#"+id).parents(".list").remove();
替換為:
代碼如下:
jQuery("#"+id).parents(".list").slideUp("slow", function(){
jQuery(this).remove();
});
Ⅳ PHP如何通過Post請求發送Json數據
首先要把數據轉換成json格式,再通過curl方法調用介面並傳參數
代碼如下:
$keyword=urlencode($_POST['keyword']);
$parameters=json_encode(array('keyWord'=>$keyword,'areaCode'=>'*'));
$post_data['appToken']="323ds7674354fds32fdsda60173";//隨便寫的
$post_data['parameters']=$parameters;
$url='http://serde.com/compadddvd/index';//隨便寫的
$ch=curl_init();
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data);//用post方法傳送參數
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$response=curl_exec($ch);
curl_close($ch);
之後就返回數據即可。