php发送短信功能(创蓝短信)

一、以下是创蓝发送短信的功能,可以直接执行:

<?php

    $phone = '12312312312';

    $msg   = '测试短信功能';

    echo '发送手机号:'.$phone.'<br/>';

    echo '发送内容:'.$msg.'<br/>';

    $send  = sendMessage($phone, $msg);

    var_dump($send);



/**

 * 发送短信

 *

 * @param string $mobile    手机号码

 * @param string $msg       短信内容

 * @param string $needstatus  是否需要状态报告

 */

function sendMessage($mobile, $msg, $needstatus = 'true'){

    //创蓝接口参数

    $postArr = array (

            'account'  =>  "自己的创蓝",

            'password' => "自己的创蓝密码",

            'msg'      => urlencode($msg),

            'phone'    => $mobile,

            'report'   => $needstatus

    );

    $result = httpCurl("https://smssh1.253.com/msg/send/json", $postArr);

    return json_decode($result);

}

/**

     * http请求

     *

     * @param $url //请求地址

     * @param $params //链接后拼接的参数数组

     * @param $method //get/post

     * @param $header //请求头数组

     */

    function httpCurl($url, $params, $method = 'POST', $header = array("Content-type:text/html; charset=UTF-8"), $multi = false)

    {

        $params = json_encode($params);

        echo '发送接口参数:'.$params;

        // 初始化cURL会话

        $ch = curl_init();

        // 设置cURL选项

        curl_setopt($ch, CURLOPT_URL, $url);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);

        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

        if ($method == 'POST' && !empty($params)) {

            curl_setopt($ch, CURLOPT_POSTFIELDS, $params);

        }

        if ($multi) {

            curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);

            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);

            curl_setopt($ch, CURLOPT_TIMEOUT, 10);

        }

        // 执行cURL会话并获取响应

        $response = curl_exec($ch);

        echo '接收发送结果:'.$response.'<br/>';

        // 检查是否有错误发生

        if (curl_errno($ch)) {

            echo 'cURL 错误: ' . curl_errno($ch). curl_error($ch);

        } else {

            // 处理响应结果

            return $response;

        }

        // 关闭cURL会话

        curl_close($ch);

    }

?>

二、下面附上curl_erron()的错误码的意思:

libcurl - Error Codes

每一个错误码都可以找到相对应的错误信息,有时候用着用着不能用了,或者错误信息返回null的时候,重启php试试,一般是因为服务更新了相关的软件包产生的问题。

重启命令:service php-fpm restart
 

三、错误码信息内容:

CURLE _ OK(0)

一切都好。照常进行。

CURLE _ UNSUPPORTED _ PROTOCOL(1)

您传递给libcurl的URL使用了该libcurl不支持的协议。支持可能是您没有使用的编译时选项,可能是拼写错误的协议字符串或只是libcurl没有代码的协议。

CURLE _ FAILED _ INIT(2)

早期初始化代码失败。这可能是一个内部错误或问题,或者是一个资源问题,在初始化时无法完成一些基本工作。

CURLE _ URL _ mal format(3)

URL格式不正确。

CURLE_NOT_BUILT_IN (4)

由于构建时的决定,在此libcurl中找不到内置的请求功能、协议或选项。这意味着在构建libcurl时没有启用或显式禁用某个特性或选项,为了让它正常工作,您必须重新构建libcurl。

CURLE _ could nt _ RESOLVE _ PROXY(5)

无法解析代理。无法解析给定的代理主机。

CURLE _ could nt _ RESOLVE _ HOST(6)

无法解析主机。未解析给定的远程主机。

CURLE_COULDNT_CONNECT (7)

无法将()连接到主机或代理。

CURLE_WEIRD_SERVER_REPLY (8)

libcurl无法解析服务器发送的数据。该错误代码被称为卷发_ FTP _怪异_服务器_回复7.51.0之前。

CURLE _ REMOTE _ ACCESS _ DENIED(9)

我们被拒绝访问URL中给定的资源。对于FTP,在尝试更改到远程目录时会出现这种情况。

CURLE _ FTP _ ACCEPT _ FAILED(10)

当使用活动FTP会话等待服务器连接时,通过控制连接或类似方式发送了错误代码。

CURLE_FTP_WEIRD_PASS_REPLY (11)

将FTP密码发送到服务器后,libcurl希望得到正确的回复。此错误代码表示返回了意外代码。

CURLE _ FTP _ ACCEPT _ time out(12)

在等待服务器连接的活动FTP会话期间CURLOPT_ACCEPTTIMEOUT_MS(或内部默认值)超时已过期。

CURLE_FTP_WEIRD_PASV_REPLY (13)

libcurl无法从服务器获得合理的结果作为对PASV或EPSV命令的响应。服务器有缺陷。

CURLE_FTP_WEIRD_227_FORMAT (14)

FTP服务器返回227行作为对PASV命令的响应。如果libcurl无法解析该行,则返回代码。

CURLE _ FTP _ CANT _ GET _ HOST(15)

查找用于新连接的主机时出现内部故障。

CURLE _ http 2(16)

在HTTP2帧层中检测到问题。这是一个普通的问题,可能是几个问题中的一个。有关详细信息,请参见错误缓冲区。

CURLE _ FTP _ could nt _ SET _ TYPE(17)

尝试将传输模式设置为二进制或ASCII时收到错误。

CURLE_PARTIAL_FILE (18)

文件传输比预期的时间短或大。当服务器首先报告预期的传输大小,然后交付与先前给定大小不匹配的数据时,就会发生这种情况。

CURLE_FTP_COULDNT_RETR_FILE (19)

这要么是对“RETR”命令的奇怪回复,要么是零字节传输完成。

Obsolete error (20)

不用于现代版本。

CURLE_QUOTE_ERROR (21)

当向远程服务器发送自定义“QUOTE”命令时,其中一个命令返回400或更高的错误代码(对于FTP ),或者指示命令未成功完成。

CURLE_HTTP_RETURNED_ERROR (22)

如果出现以下情况,则返回CURLOPT_FAILONERROR设置为真,HTTP服务器返回大于等于400的错误代码。

CURLE_WRITE_ERROR (23)

将收到的数据写入本地文件时出错,或者从写回调中将错误返回到libcurl。

Obsolete error (24)

不用于现代版本。

CURLE_UPLOAD_FAILED (25)

开始上传失败。对于FTP,服务器通常会拒绝STOR命令。错误缓冲区通常包含服务器对此的解释。

CURLE_READ_ERROR (26)

读取本地文件时出现问题,或者读取回调返回了错误。

CURLE_OUT_OF_MEMORY (27)

内存分配请求失败。这是非常糟糕的事情,如果发生这种情况,事情会变得非常糟糕。

CURLE_OPERATION_TIMEDOUT (28)

操作超时。根据条件,已达到指定的超时期限。

Obsolete error (29)

不用于现代版本。

CURLE_FTP_PORT_FAILED (30)

FTP端口命令返回错误。这通常发生在您没有为libcurl指定足够好的地址时。看见CURLOPT_FTPPORT.

CURLE_FTP_COULDNT_USE_REST (31)

FTP REST命令返回错误。如果服务器正常,这种情况应该不会发生。

Obsolete error (32)

不用于现代版本。

CURLE_RANGE_ERROR (33)

服务器不支持或不接受范围请求。

CURLE_HTTP_POST_ERROR (34)

这是一个奇怪的错误,主要是由于内部混乱造成的。

CURLE_SSL_CONNECT_ERROR (35)

SSL/TLS握手中出现问题。您真的需要错误缓冲区,并在那里阅读消息,因为它稍微指出了问题。可能是证书(文件格式、路径、权限)、密码等。

CURLE_BAD_DOWNLOAD_RESUME (36)

无法继续下载,因为指定的偏移量超出了文件边界。

CURLE _ FILE _ could nt _ READ _ FILE(37)

无法打开使用FILE://给定的文件。很可能是因为文件路径无法识别现有文件。你检查文件权限了吗?

CURLE_LDAP_CANNOT_BIND (38)

LDAP无法绑定。LDAP绑定操作失败。

CURLE_LDAP_SEARCH_FAILED (39)

LDAP搜索失败。

Obsolete error (40)

不用于现代版本。

CURLE_FUNCTION_NOT_FOUND (41)

找不到函数。找不到所需的zlib函数。

CURLE_ABORTED_BY_CALLBACK (42)

被回调中止。回调向libcurl返回了“abort”。

CURLE_BAD_FUNCTION_ARGUMENT (43)

用错误的参数调用了函数。

Obsolete error (44)

不用于现代版本。

CURLE_INTERFACE_FAILED (45)

接口错误。无法使用指定的传出接口。设置哪个接口用于传出连接的源IP地址CURLOPT_INTERFACE.

Obsolete error (46)

不用于现代版本。

CURLE_TOO_MANY_REDIRECTS (47)

太多重定向。当跟随重定向时,libcurl达到最大数量。用...设定您的限制CURLOPT_MAXREDIRS.

CURLE_UNKNOWN_OPTION (48)

传递给libcurl的选项不可识别/未知。请参考相应的文档。这很可能是使用libcurl的程序中的问题。错误缓冲区可能包含有关哪个选项的更具体的信息。

CURLE_SETOPT_OPTION_SYNTAX (49)

传递给setopt的选项格式错误。有关选项的详细信息,请参见错误消息。

Obsolete errors (50-51)

不用于现代版本。

CURLE_GOT_NOTHING (52)

服务器没有返回任何东西,在这种情况下,什么也没有得到被认为是一个错误。

CURLE_SSL_ENGINE_NOTFOUND (53)

找不到指定的加密引擎。

CURLE_SSL_ENGINE_SETFAILED (54)

将选定的SSL加密引擎设置为默认引擎失败。

CURLE_SEND_ERROR (55)

发送网络数据失败。

CURLE_RECV_ERROR (56)

接收网络数据失败。

Obsolete error (57)

不用于现代版本。

CURLE_SSL_CERTPROBLEM (58)

本地客户端证书有问题。

CURLE_SSL_CIPHER (59)

无法使用指定的密码。

CURLE_PEER_FAILED_VERIFICATION (60)

远程服务器的SSL证书或SSH指纹被认为不正确。自7.62.0起,此错误代码已与CURLE_SSL_CACERT统一。其前值为51。

CURLE_BAD_CONTENT_ENCODING (61)

无法识别的传输编码。

Obsolete error (62)

不用于现代版本。

CURLE _ FILESIZE _ exceed(63)

超过了最大文件大小。

CURLE _ USE _ SSL _ FAILED(64)

请求的FTP SSL级别失败。

CURLE_SEND_FAIL_REWIND (65)

在执行发送操作时,curl必须倒带数据以重新传输,但倒带操作失败。

CURLE _ SSL _ ENGINE _ init failed(66)

启动SSL引擎失败。

CURLE _ log in _ DENIED(67)

远程服务器拒绝curl登录(在7.13.1中添加)

CURLE_TFTP_NOTFOUND (68)

在TFTP服务器上找不到文件。

CURLE_TFTP_PERM (69)

TFTP服务器上的权限问题。

CURLE_REMOTE_DISK_FULL (70)

服务器上的磁盘空间不足。

CURLE_TFTP_ILLEGAL (71)

非法TFTP行动。

CURLE_TFTP_UNKNOWNID (72)

未知的TFTP转账ID。

CURLE _ REMOTE _ FILE _ EXISTS(73)

文件已经存在且未被覆盖。

CURLE_TFTP_NOSUCHUSER (74)

正常运行的TFTP服务器不应返回此错误。

Obsolete error (75-76)

不用于现代版本。

CURLE _ SSL _ CACERT _ BADFILE(77)

读取SSL CA证书时出现问题(路径?访问权限?)

CURLE _ REMOTE _ FILE _ NOT _ FOUND(78)

URL中引用的资源不存在。

CURLE_SSH (79)

SSH会话期间出现未指定的错误。

CURLE _ SSL _ shut down _ FAILED(80)

无法关闭SSL连接。

CURLE_AGAIN (81)

套接字未准备好发送/接收。等待它准备好,然后重试。此返回代码仅从返回curl_easy_recv和卷曲_轻松_发送(在7.18.2中添加)

CURLE _ SSL _ CRL _ BADFILE(82)

无法加载CRL文件(在7.19.0中添加)

CURLE _ SSL _ ISSUER _ ERROR(83)

发行者检查失败(在7.19.0中添加)

CURLE _ FTP _ PRET _ FAILED(84)

FTP服务器根本不理解PRET命令或不支持给定的参数。使用时要小心CURLOPT_CUSTOMREQUEST,自定义列表命令也在PASV之前与PRET命令一起发送。(在7.20.0中添加)

CURLE_RTSP_CSEQ_ERROR (85)

RTSP CSeq数不匹配。

CURLE_RTSP_SESSION_ERROR (86)

RTSP会话标识符不匹配。

CURLE_FTP_BAD_FILE_LIST (87)

无法解析FTP文件列表(在FTP通配符下载期间)。

CURLE _ CHUNK _ FAILED(88)

区块回调报告了错误。

CURLE _ NO _ CONNECTION _ AVAILABLE(89)

(仅供内部使用,libcurl从不返回)没有连接可用,会话排队。(在7.30.0中添加)

CURLE _ SSL _ PINNEDPUBKEYNOTMATCH(90)

无法匹配用指定的固定密钥CURLOPT_PINNEDPUBLICKEY.

CURLE _ SSL _ INVALIDCERTSTATUS(91)

询问时,状态返回失败CURLOPT_SSL_VERIFYSTATUS.

CURLE _ http 2 _ STREAM(92)

HTTP/2帧层中的流错误。

CURLE _ RECURSIVE _ API _ CALL(93)

从回调内部调用了API函数。

CURLE _ AUTH _ ERROR(94)

身份验证函数返回错误。

CURLE _ http 3(95)

在HTTP/3层检测到一个问题。这是一个普通的问题,可能是几个问题中的一个。有关详细信息,请参见错误缓冲区。

CURLE_QUIC_CONNECT_ERROR (96)

QUIC连接错误。此错误可能是由SSL库错误引起的。QUIC是用于HTTP/3传输的协议。

CURLE _ PROXY(97)

代理握手错误。CURLINFO_PROXY_ERROR提供特定问题的额外详细信息。

CURLE _ SSL _ client cert(98)

需要SSL客户端证书。

CURLE_UNRECOVERABLE_POLL (99)

对poll()或select()的内部调用返回了不可恢复的错误。

CURLE_TOO_LARGE (100)

值或数据字段变得比允许的大。

CURLE_ECH_REQUIRED (101)

ECH尝试过,但失败了。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/634936.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024电工杯数学建模 - 案例:最短时间生产计划安排

# 前言 2024电工杯(中国电机工程学会杯)数学建模思路解析 最新思路更新(看最新发布的文章即可): https://blog.csdn.net/dc_sinor/article/details/138726153 最短时间生产计划模型 该模型出现在好几个竞赛赛题上&#xff0c;预测2022今年国赛也会与该模型相关。 1 模型描…

BUUCTF---misc---我吃三明治

1、下载附件是一张图片 2、在winhex分析&#xff0c;看到一串整齐的编码有点可疑&#xff0c;保存下来&#xff0c;拿去解码&#xff0c;发现解不了&#xff0c;看来思路不对 3、再仔细往下看的时候也发现了一处这样的编码&#xff0c;但是这次编码后面多了一段base编码 4、拿去…

抖音小店什么产品最好卖?六月份的必爆产品!商家抓紧上架!

哈喽~我是电商月月 做抖音小店&#xff0c;爆款是非常吃香的&#xff0c;但普通玩家只有在爆款出来的那几天才能发现&#xff0c;再去截流&#xff0c;其实热度已经不高了&#xff0c;那想吃到这一口“螃蟹”只能自己去挖掘 每年爆的产品就是那几种&#xff0c;我们可以朝这几…

java自学阶段二:JavaWeb开发--day04(Maven学习)

day04学习笔记 一、学习目标 1.了解maven的基础概念&#xff1b; 2.学会maven的部署&#xff1b; 3.maven的作用&#xff1a;标准化&#xff1b;方便找依赖 maven就是一个开源项目&#xff0c;专门用来管理和构建Java项目的&#xff1b;我们自己写的项目结构可能会千奇百怪&am…

OpenAI 与 Reddit 达成重要合作伙伴关系

Reddit是一个娱乐、社交及新闻网站&#xff0c;注册用户可以将文字或链接在网站上发布&#xff0c;使它基本上成为了一个电子布告栏系统。注册用户可以对这些帖子进行投票&#xff0c;结果将被用来进行排名和决定它在首页或子页的位置。网站上的内容分类被称为“subreddit”。s…

列表的创建和删除

目录 使用赋值运算符直接创建列表 创建空列表 创建数值列表 删除列表 自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501\ 对于歌曲列表大家一定很熟悉&#xff0c;在列表中记录着要播放的歌曲名称…

ROS 手眼标定 realsense435+ur5e

手眼标定的原理 基坐标系&#xff08;base_tree&#xff09;和相机&#xff08;camera_tree&#xff09;两个坐标系属于不同的tree&#xff0c;通过将标签贴到手上&#xff0c;相机识别出标签的position和orention&#xff0c;并通过easy_handeye标定包得到tool0(机械手)&…

Docker 部署Jenkins

1、运行镜像 docker run --namejenkins \--restartalways \--privilegedtrue \-u root \-p 8080:8080 \-p 50000:50000 \-v /home/docker/jenkins/jenkins_home:/var/jenkins_home \-v /usr/bin/docker:/usr/bin/docker \-v /var/run/docker.sock:/var/run/docker.sock \-e TZ…

Java面试八股之有哪些线程安全的集合类

Java中有哪些线程安全的集合类 在Java中&#xff0c;并非所有的集合类都是线程安全的&#xff0c;但在多线程环境下&#xff0c;确保集合操作的线程安全性至关重要。以下是几个典型的线程安全集合类&#xff1a; Vector: 类似于ArrayList&#xff0c;但它是线程安全的。它通过…

【学习笔记】后端(Ⅰ)—— NodeJS(Ⅰ)

NodeJS 1、概述 1.1、NodeJS是什么 1.2、NodeJS的主要作用 1.3、NodeJS的优点 1.4、NodeJS 与 浏览器 的 JavaScript 对比 1.4.1 ECMAScript 介绍 1.4.2 JavaScript 介绍 1.4.3 TypeScript 介绍2、基础篇 2.1、Buff…

技术专家分享 | OPENAIGC开发者大赛能量加油站6月1日场预约开启~

由联想拯救者、AIGC开放社区、英特尔联合主办的“AI生成未来第二届拯救者杯OPENAIGC开发者大赛”自上线以来&#xff0c;吸引了广大开发者的热情参与。 为了向技术开发者、业务人员、高校学生、以及个体创业人员等参赛者们提供更充分的帮助与支持&#xff0c;AIGC开放社区特别…

半导体测试基础 - AC 参数测试

AC 测试确保 DUT 的时特性序满足其规格需求。 基本 AC 参数 建立时间(Setup Time) 建立时间指的是在参考信号(图中为 WE)发生变化(取中间值 1.5V)前,为了确保能被正确读取,数据(图中为 DATA IN)必须提前保持稳定不变的最短时间。在最小建立时间之前,数据可以随意变…

【python】python省市水资源数据分析可视化(源码+数据)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

今年为什么有这么多商家转战到视频号小店?有钱不赚那是“傻子”

大家好&#xff0c;我是电商小V 对于了解电商的玩家来说&#xff0c;今年很多玩家都发现一个现象那就是很多的抖音电商玩家都开了视频号小店&#xff0c;这是因为抖音小店不好做了吗&#xff1f;其实并不是的&#xff0c;抖音小店依旧是可以操作的&#xff0c;但是视频号小店是…

赛事|基于SprinBoot+vue的CSGO赛事管理系统(源码+数据库+文档)

CSGO赛事管理系统 目录 基于SprinBootvue的CSGO赛事管理系统 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3参赛战队功能模块 4合作方功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&…

unity围绕物体旋转、缩放、移动

unity围绕物体旋转、缩放、移动 注意三个物体的位置!!! using System; using UnityEngine; using UnityEngine.EventSystems;public class Obj_Rotation : MonoBehaviour {[Header("摄像机父物体位置信息")]public Transform camPrent_tranasform;[Header("摄像…

大数据技术原理(二):搭建hadoop伪分布式集群这一篇就够了

&#xff08;实验一 搭建hadoop伪分布式&#xff09; -------------------------------------------------------------------------------------------------------------------------------- 一、实验目的 1.理解Hadoop伪分布式的安装过程 实验内容涉及Hadoop平台的搭建和…

“现代汽车中国前瞻软件赛杯” 牛客周赛 Round 43

A. 小红平分糖果&#xff08;签到&#xff09; // Problem: 小红平分糖果 // Contest: NowCoder // URL: https://ac.nowcoder.com/acm/contest/82394/A // Memory Limit: 524288 MB // Time Limit: 2000 ms // // Powered by CP Editor (https://cpeditor.org)#include<b…

【软件工程】【23.10】p2

关键字&#xff1a; 软件复用技术、过程途径、特定需求是文档核心、数据字典条目、高内聚低耦合独立性、数据流图映射模块结构图、UML依赖、用例图关系、RUB迭代、程序规格说明等价类划分、有效性测试的目标、喷泉模型面向对象、软件验证过程、CMMI

Windows安装php_ssh2扩展

一、读取PHP信息 先用phpinfo读取使用的php的版本信息 二、下载ssh2扩展 链接&#xff1a;https://windows.php.net/downloads/pecl/snaps/ssh2/1.2-dev/ 点击链接下载对应链接 三、开启扩展 下载好压缩包后&#xff0c;解压缩得到php_ssh2.dll、php_ssh2.pdb文件&#xff…