你說的應(yīng)該是服務(wù)端主動向客戶端推送消息, 這個只能使用Socket建立長連接來實現(xiàn)。
成都創(chuàng)新互聯(lián)公司是一家專注于成都做網(wǎng)站、成都網(wǎng)站建設(shè)與策劃設(shè)計,洛龍網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:洛龍等地區(qū)。洛龍做網(wǎng)站價格咨詢:18980820575
客戶端實現(xiàn)比較簡單, 大多數(shù)瀏覽器提供的應(yīng)該都有接口, 幾個方法就可以建立一個連接,然后進(jìn)行消息監(jiān)聽就可以了,服務(wù)端實現(xiàn)稍微復(fù)雜點, 不過你根本不用自己寫那些底層代碼, php平臺上有一個庫叫 "Workerman", 里面所有功能已經(jīng)幫你實現(xiàn)好了, 你看看文檔就能直接調(diào)用了, 很簡單的。
這個可以通過PHP的curl請求來提交數(shù)據(jù)到其他的網(wǎng)站!獲取執(zhí)行的結(jié)果即可!以下是一個示例。
function?curlpost($data,$url){????????????????????//curlpost提交函數(shù)
$data=array('data'=$data);
$ch?=?curl_init?();
curl_setopt?($ch,?CURLOPT_URL,?$url?);
curl_setopt?($ch,?CURLOPT_POST,?true?);
curl_setopt?($ch,?CURLOPT_HEADER,?0?);
curl_setopt?($ch,?CURLOPT_RETURNTRANSFER,?1?);
curl_setopt?($ch,?CURLOPT_POSTFIELDS,?$data?);
$state=curl_exec?($ch?);
curl_close?($ch?);
return?$state;
}
一、用form表單中的hidden隱藏域。這種方法就是把待傳遞的變量用表單的方式再次傳送,比如在用戶登陸后,把他的信息如$username、$id等等信息用表單發(fā)送到下一張網(wǎng)頁,當(dāng)然,很多情況,是諸如text、option等等框體不想再被看到的話,可以采用隱藏的輸入域。下面是一個實例,假設(shè)$username是經(jīng)過上頁為驗證身份發(fā)送到本頁并且在本頁經(jīng)過驗證的變量,想傳遞到下一頁中去,那么可以建立文件test4.PHP:
?$username="張明";?
form method="post" action="test5.php"
input type="hidden" name="username" value="?echo $username?"
input type="submit" name="submit" value="看看"
/form
test5.php:
?echo "你好,$username,歡迎光臨php自學(xué)網(wǎng)!";?
打開apache服務(wù)器,輸入在頁面的按鈕上點擊,會發(fā)現(xiàn)新出的網(wǎng)頁上$username的值已經(jīng)傳送過來了。
當(dāng)然這種方法的弱點是很明顯的,它還要再使用一個表單,而且在test5.php的網(wǎng)頁上想要刷新的話還要重新發(fā)送,這顯然是不太友好的。
二、使用session。后來,我查找了一些關(guān)于session的文章,覺得這時傳遞變量的一種非常好的方法。下面通過舉例子來說明:
建立一個新文件test6.php:
?session_start(); //初始化一個session
session_register("username"); //注冊一個session變量
$username="張明"; //要傳遞的變量值
echo "a href=test7.php去看看/a";
?
test7.php:
?session_start(); //初始化一個session
echo "你好,$username,歡迎光臨php自學(xué)網(wǎng)!";? //顯示傳遞過來的變量
使用這種方法的時候要注意:?session_start();?應(yīng)該放在文件的最前面,即"?"前面不應(yīng)有任何內(nèi)容,包括空格,這是我調(diào)試多次未成功找出的原因。
這個變量只能在當(dāng)前打開的瀏覽器中傳遞,若要在新打開的窗口中也能傳遞,剛要按下面的方法來做:
文件:test8.php
?session_start();
session_register("username");
$username="張明";
echo "a href=test7.php?$a=".session_id()." target=_blank去看看/a"; //將當(dāng)前的session的id值傳給下一個窗口。
?
test7.php
?session_start();
echo "你好,$username,歡迎你的光臨!";?
三,通過cookie
建立文件test9.php
?SetCookie("username","張明");//把username設(shè)置到cookie中去
echo "a href=test5.php target=_blank去看看/a";?
文件test5.php
建立test5.php:
?echo "你好,$username,歡迎你的光臨php自學(xué)網(wǎng)!";?
總結(jié):以上只是一些常用的方法,還有很多的方法,如可以使用數(shù)據(jù)庫,memcache等等.在此不做過多介紹.