php fsockopen例子
<?php
/*
* 短信相关api
*/
class Webcall {
protected $VCC_CODE; //api的账号
protected $password; //api的密码
protected $api_url; //api的地址
/*
* 设置api相关参数
* */
public function __construct() {
$this->CI = & get_instance();
$this->CI->config->load('config.php');
$sms_config = $this->CI->config->item('callcenter');
$this->api_url = $sms_config['api_url'];
$this->VCC_CODE = $sms_config['vcc_code'];
$this->secret = $sms_config['secret'];
}
/*
* 请求打电话接口
* @param array $param 要发送的参数
* */
public function post_api($param = array()) {
$url_info = parse_url($this->api_url);
$httpheader = "POST " . $url_info['path'] . " HTTP/1.0\r\n";
$httpheader .= "Host:" . $url_info['host'] . "\r\n";
$httpheader .= "Content-Type:application/x-www-form-urlencoded\r\n";
$httpheader .= "Content-Length:" . strlen(http_build_query($param)) . "\r\n";
$httpheader .=$this->get_auth();
$httpheader .= "Connection:close\r\n\r\n";
$httpheader .= http_build_query($param);
$fd = fsockopen($url_info['host'], 80);
fwrite($fd, $httpheader);
$gets = "";
while(!feof($fd)) {
$gets .= fread($fd, 128);
}
fclose($fd);
return $gets;
}
/**
* 生成调用电话接口的验证数据
* @param none
* */
public function get_auth() {
$nonce = rand(100000, 999999); //base64_encode('žY');//$this->CI->security->get_random_bytes(5));
$time = time();
$PasswordDigest = base64_encode(sha1(base64_decode($nonce) . $time . $this->secret, true));
$header = "X-WSSE:UsernameToken Username=\"" . $this->VCC_CODE . "\",PasswordDigest=\"" . $PasswordDigest . "\",Nonce=\"" . $nonce . "\",Created=\"" . $time . "\"\r\n";
return $header;
}
/**
* 医生打电话给用户
* @param string $caller 先接通一方号码
* @param string $called 后接通一方号码
* */
public function call($caller, $called) {
$params = array('vcc_code' => $this->VCC_CODE, 'caller' => $caller, 'called' => $called, 'display_caller' => '59222733', 'display_called' => '59222733');
$res = $this->post_api($params);
if (strpos($res, 'ok') !== FALSE) {
return TRUE;
}
return FALSE;
}
}
php fsockopen例子的更多相关文章
- PHP模拟发送POST请求之三、用Telnet和fsockopen()模拟发送POST信息
了解完了HTTP头信息和URL信息的具体内容,我们开始尝试自己动手写一段头信息发送到服务器.Windows内置命令Telnet可以帮助我们发送简单的HTTP请求. 并且TELNET是一个特别灵活的工具 ...
- PHP用CURL或fsockopen伪造IP和来路(referer)
URL是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 CURL库. 我们可以用CURL来伪造IP和来路,例子:1.php 请求 ...
- fsockopen — 打开一个网络连接或者一个Unix套接字连接
fsockopen (PHP 4, PHP 5, PHP 7) 说明 resource fsockopen ( string $hostname [, int $port = -1 [, int &a ...
- PHP 用 fsockopen()、fputs() 来请求一个 URL,不要求返回
项目需要,场景如下: 某个条件下需要调用接口发送多个请求执行脚本,但是由于每个请求下的脚本执行时间在半个小时左右,所以 就放弃返回执行结果,只要求能秒发送所以就可以. 代码如下: /** * 发起异步 ...
- [转]php curl经典最常用的5个例子
转自: http://www.jb100.net/html/content-22-821-1.html php curl常用的5个例子 我用php ,curl主要是抓取数据,当然我们可以用其他的方法来 ...
- php curl常用的5个例子
转载:http://www.jb100.net/html/content-22-821-1.html php curl常用的5个例子 我用php ,curl主要是抓取数据,当然我们可以用其他的方法 ...
- PHP fsockopen模拟POST/GET方法
原文链接:http://www.nowamagic.net/academy/detail/12220214 fsockopen 除了前面小节的模拟生成 HTTP 连接之外,还能实现很多功能,比如模拟 ...
- fsockopen与HTTP 1.1/HTTP 1.0
在前面的例子中,HTTP请求信息头有些指定了 HTTP 1.1,有些指定了 HTTP/1.0,有些又没有指定,那么他们之间有什么区别呢? 关于HTTP 1.1与HTTP 1.0的一些基本情况,可以参考 ...
- fsockopen用feof读取http响应内容的一些问题
在前面三个例子中,都有这么一段代码: while (!feof($fp)) { // 读取文件/数据 //$content .= fgets($fp, 128); //$line = fread($f ...
随机推荐
- 《Intel汇编第5版》 汇编拷贝字符串
一.字符串定义 二.dup指令 三.调用Writestring过程 四.代码以及效果 TITLE String Copy INCLUDE Irvine32.inc includelib Irvine3 ...
- Tomcat多域名的配置
有时候我们有好几个项目需要发布在同一个tomcat服务器上,每个项目有不同的域名.这就需要在tomcat里配置多域名,添加多个虚拟主机. 主要在server.xml里面设置: 在<Engine& ...
- 关于CGI、FastCGI和PHP-FPM的关系
1.CGI是干嘛的? CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者. web server(比如说nginx)只是内容的分发者.比如,如果请求/index.h ...
- tomcat解压版安装(摘自网络)
配置Tomcat[解压版] 选择解压版的Tomcat的理由是可以让我们使用多个Tomcat,但是配置上就会出现一些问题,需要我们手动进行更改配置.我的Tomcat版本是:apache-tomcat-6 ...
- Nohttp框架在Android Studio中的使用
1.添加noHttp的使用权限 <!-- 读写 sd 卡 --> <uses-permission android:name="android.permission.REA ...
- javascript 日期对象
1.日期对象定义 var Udate=new Date();//获得当前日期 2.Date对象中处理时间和日期的常用方法: 3.返回/设置年份 var mydate=new Date();//当前时间 ...
- Linux学习 -- 常用命令
目录处理命令 ls mkdir rmdir pwd cd cp mv rm 文件处理命令 touch cat tac more less head tail 连接命令 ln 软连接 ln -s 类似于 ...
- Servlet综述
Servlet 是在服务器上运行的小程序.这个词是在 Java applet 的环境中创造的.虽然后者已很少被使用,但 servlet 却发展的很好.是一般面试都会常考的知识. 由来 servlet ...
- 《JS权威指南学习总结--6.7属性的特性》
内容要点: 一.ES5中查询和设置属性的API 1.可以通过这些API给原型对象添加方法,并将它们设置成不可枚举的,这让它们看起来更像内置方法. 2.可以通过这些API给对象定义不能修改或删除的属性, ...
- JavaScript的正则表达式
1.文本框只能输入数字(不包括小数点) <input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpas ...