A. php如何編寫一個微信公眾平台的消息推送

給你個代碼樣例不可以直接復制使用

/**
*發送模板消息
*@param$tmpId模板ID
*@param$openId用戶openID
*@param$param模板參數
*@param$url
*@returnmixed
*@authorfjlhuman
*/
publicfunctionsendTmpMessage($tmpId,$openId,$param,$url){

$postUrl="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$this->accessToken;

$arrData['touser']=$openId;
$arrData['template_id']=$tmpId;//'6OT8DDNF-CbiadTsbEKKSCZVHe_9hnhxOBT7EvURNcE';
$arrData['url']=$url;
$arrData['data']=$param;

$json=json_encode($arrData);
$result=Curl::post($postUrl,$json);

$result=json_decode($result,true);

$rData['isTure']=false;
$rData['msg']="";

if($result['errcode']==0){
$rData['isTure']=true;
$rData['msg']="發送成功";
}else{
$rData['msg']=$result['errcode'];
}
return$rData;

}

詳情請參考微信公眾平台技術文檔->模板消息介面

B. php 定時推送消息怎麼做

這個要用到伺服器系統的計劃任務,如果是linux伺服器 的cron。代碼實現是非常消耗性能的,需要不停的循環執行。

C. 如何在php中用百度雲推送進行消息的推送

在php中用網路雲推送進行消息的推送的方法
1.Android端推送
// 創建Android SDK對象.
$asdk = new \Vendor\pushsdk\PushSDK(); //自己引入網路雲推送的SDK,官網上有文檔詳細介紹
$channelId = $channelrows;
$message = array (
// 消息的標題.
'title' => $title,
// 消息內容
'description' => $brief,
//傳廣告id,可以通過鍵值對的形式傳多個值
'custom_content'=>array('id'=>$id),
);
// 設置消息類型為通知類型.
$opts = array (
'msg_type' => 1,
);
// 向目標設備發送一條消息(群發,指的是通過前面的篩選之後的channelId進行的大量的推送)
$rs = $asdk -> pushBatchUniMsg($channelId, $message, $opts);
// 判斷返回值,當發送失敗時, $rs的結果為false, 可以通過getError來獲得錯誤信息.
if($rs === false)
{
print_r($asdk->getLastErrorCode());
print_r($asdk->getLastErrorMsg());
}
else{echo "success!";}
2.IOS推送
// 創建Ios SDK對象.
$isdk = new \Vendor\ipushsdk\IPushSDK();
$channelId = $channelrows;
$message = array (
'aps' => array(
'alert' => $brief, // 消息內容
),
'id' =>$id, //賬號ID,這邊能夠以鍵值對的形式可以傳多個值
);
// 設置消息類型為 通知類型.
$opts = array (
msg_type' => 1,
'deploy_status' => 2, //2是生產狀態,剛開始開發測試時需要設置成1進行測試
);
$rs = $isdk->createTag('tag_new'); //通過創建標簽的方式來實現群發的功能
if($rs !== false)
{
if($isdk -> addDevicesToTag('tag_new',$channelId) !== false)
{
// 發送
$rs = $isdk -> pushMsgToTag('tag_new',$message,$opts);
//刪除標簽
$delRs = $isdk->deleteTag('tag_new');
//判斷返回值,當發送失敗時, $rs的結果為false, 可以通過getError來獲得錯誤信息.
if($rs === false)
{
print_r($isdk->getLastErrorCode());
print_r($isdk->getLastErrorMsg());
}
else{echo "success!";}
}
}

D. php怎麼實現實時推送呢

網路雲推送可以實現你這種需求,可以指定推給某個ID,也可以指定推給哪個組,還可以推給所有人我們用極光推送,客戶端和服務端配置的都簡單,有Demo可直接運行的.
demo可以直接運行的(有個main方法測試的)
不過,如果不是一定要實時消息,還是不要用這種第三方的推送伺服器了,畢竟是人家的伺服器
而且推送次數,頻率什麼的都有限制,還不如你在移動端做輪詢處理,即1分鍾請求一下伺服器,或者30秒請求一下伺服器,看看有沒有數據什麼的.
當然也可以自己搭建推送伺服器,xmpp協議什麼的.好復雜
用極光推送你試試。
更多問題到問題求助專區(http://bbs.hounwang.com/)

E. 百度推送 php怎麼弄

PHP版的網路推送,網路已經給了我們示例了,直接設置就好了。
$urls = array(
'http://www.zhaoqipei.com/b2b/article/content/943.jhtml,
'http://www.zhaoqipei.com/b2b/article/content/941.jhtml',
);
$api = 'http://data.zz..com/urls?site=www.zhaoqipei.com&token=xxxxxx;
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;

F. 如何在php後端及時推送消息給客戶端

後端代碼
push.php

<?php
useWorkermanWorker;
require_once'./Workerman/Autoloader.php';
//初始化一個worker容器,監聽1234埠
$worker=newWorker('websocket://0.0.0.0:1234');
//這里進程數必須設置為1
$worker->count=1;
//worker進程啟動後建立一個內部通訊埠
$worker->onWorkerStart=function($worker)
{
//開啟一個內部埠,方便內部系統推送數據,Text協議格式文本+換行符
$inner_text_worker=newWorker('Text://0.0.0.0:5678');
$inner_text_worker->onMessage=function($connection,$buffer)
{
global$worker;
//$data數組格式,裡面有uid,表示向那個uid的頁面推送數據
$data=json_decode($buffer,true);
$uid=$data['uid'];
//通過workerman,向uid的頁面推送數據
$ret=sendMessageByUid($uid,$buffer);
//返回推送結果
$connection->send($ret?'ok':'fail');
};
$inner_text_worker->listen();
};
//新增加一個屬性,用來保存uid到connection的映射
$worker->uidConnections=array();
//當有客戶端發來消息時執行的回調函數
$worker->onMessage=function($connection,$data)use($worker)
{
//判斷當前客戶端是否已經驗證,既是否設置了uid
if(!isset($connection->uid))
{
//沒驗證的話把第一個包當做uid(這里為了方便演示,沒做真正的驗證)
$connection->uid=$data;
/*保存uid到connection的映射,這樣可以方便的通過uid查找connection,
*實現針對特定uid推送數據
*/
$worker->uidConnections[$connection->uid]=$connection;
return;
}
};

//當有客戶端連接斷開時
$worker->onClose=function($connection)use($worker)
{
global$worker;
if(isset($connection->uid))
{
//連接斷開時刪除映射
unset($worker->uidConnections[$connection->uid]);
}
};

//向所有驗證的用戶推送數據
functionbroadcast($message)
{
global$worker;
foreach($worker->uidConnectionsas$connection)
{
$connection->send($message);
}
}

//針對uid推送數據
functionsendMessageByUid($uid,$message)
{
global$worker;
if(isset($worker->uidConnections[$uid]))
{
$connection=$worker->uidConnections[$uid];
$connection->send($message);
returntrue;
}
returnfalse;
}

//運行所有的worker(其實當前只定義了一個)
Worker::runAll();


啟動後端服務
phppush.phpstart-d

前端接收推送的js代碼
varws=newWebSocket('ws://127.0.0.1:1234');
ws.onopen=function(){
varuid='uid1';
ws.send(uid);
};
ws.onmessage=function(e){
alert(e.data);
};

後端推送消息的代碼

//建立socket連接到內部推送埠
$client=stream_socket_client('tcp://127.0.0.1:5678',$errno,$errmsg,1,STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT);
//推送的數據,包含uid欄位,表示是給這個uid推送
$data=array('uid'=>'uid1','percent'=>'88%');
//發送數據,注意5678埠是Text協議的埠,Text協議需要在數據末尾加上換行符
fwrite($client,json_encode($data)." ");
//讀取推送結果
echofread($client,8192);

這里的uid不一定是用戶的id,也可以理解為任務id即 taskid

以上代碼親測可以直接使用

G. php如何實現伺服器推送技術,即時把信的數據發送到客戶端。

主要有三種方案
第一種是利用第三方的API來實現信息推送,主要包括環信、網路雲推送、leancloud等
第二種通過javascript的setTimeout或者setInterval來實現,同理PHP端也可以用守護進程來實現
第三種通過Linux的計劃任務來實時推送需要消息

H. php中怎麼用curl推送數據,每次推送一次

直接基於curl發起請求就可以了,至於每次推送一次的需求,你可以通過定時去做,每次
只執行一遍即可。

關於phpcurl更多內容,請參考我的博客《PHPcURL實現模擬登錄與採集使用方法詳解教程》

I. php+js 如何實現 推送功能啊

推送是指 App的推送嗎?如果是的話,恐怖比較難以用PHP+JS來實現,任何技術都有擅長和不擅長的領域。

如果是要做PHP推送的話,nodejs / goLang / C++ 這些建立長鏈接會比較合適。