<?php
$webhook = "https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXXXXX填入你的机器人access_token";
$message="这里中文编码最容易出问题,40035错误是常事呀~~~,UTF-8,最容易被忽略的关键点!";
$data = array ('msgtype' => 'text', 'text' => array ('content' => $message));
$data_string = json_encode_ex($data);
$result = request_by_curl($webhook, $data_string);
echo $result;
/**
* php curl 向指定地址发送HTTP请求
* @param 服务器地址 POST内容字符串
* @return string
*/
function request_by_curl($remote_server, $post_string) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $remote_server);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_HTTPHEADER, array ('Content-Type: application/json;charset=utf-8'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//线下环境不用开启curl证书验证, 未调通情况可尝试添加该代码
//curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, false);
//curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
/*
* Add by lizhaoyao
* Add at 2016-07-07 10:43
* 由于 一般在PHP5.4中对json中中文转码直接用了json_encode($data,JSON_UNESCAPED_UNICODE)
* 而 php5.3中 JSON_UNESCAPED_UNICODE 这个值是不存在的 所以要自己写一个兼容函数
* 对变量进行 JSON 编码
* @param mixed value 待编码的 value ,除了resource 类型之外,可以为任何数据类型,该函数只能接受 UTF-8 编码的数据
* @return string 返回 value 值的 JSON 形式
* */
function json_encode_ex( $value)
{
if ( version_compare( PHP_VERSION,'5.4.0','<')){
$str = json_encode( $value);
$str = preg_replace_callback(
"#\\\u([0-9a-f]{4})#i",
function( $matchs){
return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1]));
},
$str
);
return $str;
} else {
return json_encode( $value, JSON_UNESCAPED_UNICODE);
}
}
?>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。