好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > php使用socket調用http和smtp協議實例小結

php使用socket調用http和smtp協議實例小結

熱門標簽:廣州防封卡外呼系統多少錢一個月 江西手機自動外呼防封系統是什么 仁和怎么申請400開頭的電話 廣東地市地圖標注 高德地圖標注家 外呼系統撥打暫時無法接通 哪里辦理400電話 長春人工外呼系統服務商 怎么向銷售公司推銷外呼系統

本文實例講述了php使用socket調用http和smtp協議。分享給大家供大家參考,具體如下:

socket發送HTTP請求

http協議請求報文格式

get

## 請求方法 請求文件路徑?查詢字符串 HTTP/協議版本號
## Host: 主機名:端口號
## Connection:close

post

## 請求方法 請求文件路徑 HTTP/協議版本號
## Host: 主機名:端口號
## Content-type: application/x-www-form-urlencoded
## Content-length: 查詢字符串長度
## Connection: close
## 查詢字符串

api.php

?php
echo $_SERVER["REQUEST_METHOD"]."br/>";
print_r($_REQUEST);

fsocketopen發送get請求

?php
$url = "api.php";
$host = "127.0.0.1";
$port = 8080;
$param = ["name"=>"zhezhao","age"=>23];
$url .= "?".http_build_query($param);
$socket = fsockopen($host,$port,$errno,$errstr,10);
$request = "GET /${url} HTTP/1.1\r\n";
$request .= "Host:${host}:{$port}\r\n";
$request .= "Connection:close\r\n\r\n";
fwrite($socket,$request);
echo "b>Request:/b>br/>".str_replace("\r\n","br/>",$request);
echo "hr/>b>Response:/b>br/>";
$response = "";
while ($out = fread($socket, 2048)) {
 $response .= $out;
}
echo str_replace("\r\n","br/>",$response);
fclose($socket);

sockets擴展發送post請求

?php
$url = "api.php";
$host = "127.0.0.1";
$port = 8080;
$param = ["name"=>"zhezhao","age"=>23];
$data = http_build_query($param);
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, $host,$port);
$request = "POST /${url} HTTP/1.1\r\n";
$request .= "Host:${host}:{$port}\r\n";
$request .= "Content-type:application/x-www-form-urlencoded\r\n";
$request .= "Content-length:".strlen($data)."\r\n";
$request .= "Connection:close\r\n\r\n";
$request .= "${data}";
socket_write($socket,$request);
echo "b>Request:/b>br/>".str_replace("\r\n","br/>",$request);
echo "hr/>b>Response:/b>br/>";
$response = "";
while ($out = socket_read($socket, 2048)) {
 $response .= $out;
}
echo str_replace("\r\n","br/>",$response);
socket_close($socket);

socket發送smtp請求

首先通過socket連接到smtp服務器,例如smtp.163.com 25,然后實現smtp發送郵件的必須參數即可。

HELO 主機名
AUTH LOGIN base64編碼之后的發件人郵箱
base64編碼之后的密碼
##填寫信封
MAIL FROM:發件人郵箱>
RCPT TO:收件人郵箱>
##填寫信件內容
DATA
MIME-Version:1.0
To: 收件人郵箱
From: 發件人郵箱
Subject: 郵件主題

郵件內容

fsocketopen發送郵件

fsocketopenpfsocketopen是php機制本身的函數,可以直接調用,不需要安裝擴展。以上兩個函數可以打開一個網絡連接或者一個Unix套接字連接,然后我們可以使用fwrite,fread,fclose,feof等函數直接操作該網絡連接。

?php
$user = "root@163.com";
$password = "root";
$mailto = "1234567@qq.com";
$subject = "fsocketopen發送郵件";
$body = "收到郵件了么,親";
$sock = fsockopen("smtp.163.com",25);
fputs($sock,"HELO localhost\r\n");
echo fgets($sock, 512)."br/>";
fputs($sock,"AUTH LOGIN ".base64_encode($user)."\r\n");
echo fgets($sock, 512)."br/>";
fputs($sock,base64_encode($password)."\r\n");
echo fgets($sock, 512)."br/>";
fputs($sock,"MAIL FROM:${user}>\r\n");
echo fgets($sock, 512)."br/>";
fputs($sock,"RCPT TO:${mailto}>\r\n");
echo fgets($sock, 512)."br/>";
fputs($sock,"DATA\r\n");
echo fgets($sock, 512)."br/>";
$header = "MIME-Version:1.0\r\n";
$header .= "To: ${mailto}\r\n";
$header .= "From: ${user}\r\n";
$header .= "Subject: ${subject}\r\n";
fputs($sock, $header . "\r\n" . $body);
echo fgets($sock, 512)."br/>";
fputs($sock, "\r\n.\r\n");
echo fgets($sock, 512)."br/>";
fputs($sock,"QUIT\r\n");
fclose($sock);

sockets擴展發送郵件

sockets擴展的功能更加強大,可以搭建tcp/ip服務器,不過我們使用smtp協議發送郵件的例子,只需要使用到socket客戶端的功能。

 ?php
$user = "root@163.com";
$password = "root";
$mailto = "1234567@qq.com";
$subject = "sockets擴展發送郵件";
$body = "收到郵件了么,親";
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, "smtp.163.com",25);
socket_write($socket,"HELO localhost\r\n");
echo socket_read($socket, 512)."br/>";
socket_write($socket,"AUTH LOGIN ".base64_encode($user)."\r\n");
echo socket_read($socket, 512)."br/>";
socket_write($socket,base64_encode($password)."\r\n");
echo socket_read($socket, 512)."br/>";
socket_write($socket,"MAIL FROM:${user}>\r\n");
echo socket_read($socket, 512)."br/>";
socket_write($socket,"RCPT TO:${mailto}>\r\n");
echo socket_read($socket, 512)."br/>";
socket_write($socket,"DATA\r\n");
echo socket_read($socket, 512)."br/>";
$header = "MIME-Version:1.0\r\n";
$header .= "To: ${mailto}\r\n";
$header .= "From: ${user}\r\n";
$header .= "Subject: ${subject}\r\n";
socket_write($socket, $header . "\r\n" . $body);
echo socket_read($socket, 512)."br/>";
socket_write($socket, "\r\n.\r\n");
echo socket_read($socket, 512)."br/>";
socket_write($socket,"QUIT\r\n");
fclose($sock);

參考文章:

https://www.jb51.net/article/66594.htm

https://www.jb51.net/article/114394.htm

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php socket用法總結》、《php字符串(string)用法總結》、《PHP數學運算技巧總結》、《php面向對象程序設計入門教程》、《PHP數組(Array)操作技巧大全》、《PHP數據結構與算法教程》、《php程序設計算法總結》及《PHP網絡編程技巧總結》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • php 利用socket發送HTTP請求(GET,POST)
  • PHP使用socket發送HTTP請求的方法
  • 使用PHP Socket 編程模擬Http post和get請求
  • php中用socket模擬http中post或者get提交數據的示例代碼
  • php基于socket實現SMTP發送郵件的方法
  • php中使用Curl、socket、file_get_contents三種方法POST提交數據
  • php socket方式提交的post詳解
  • PHP中使用socket方式GET、POST數據實例
  • PHP socket 模擬POST 請求實例代碼
  • php使用socket post數據到其它web服務器的方法
  • php自定義類fsocket模擬post或get請求的方法

標簽:黔東 濮陽 廈門 梅河口 文山 海北 惠州 湘西

巨人網絡通訊聲明:本文標題《php使用socket調用http和smtp協議實例小結》,本文關鍵詞  php,使用,socket,調用,http,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《php使用socket調用http和smtp協議實例小結》相關的同類信息!
  • 本頁收集關于php使用socket調用http和smtp協議實例小結的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 女人扒开秘?让男人桶爽韩剧| 男女18网站免费下载| 国产高级黄区18勿进一区二区| 大乳bOObs巨大吃奶青少年| 公啊嗯用力一点小说| 小妾裸体跪趴撅着给人玩弄| 饥渴放荡受np纯肉最新章节上架时间| 亚洲成人自拍网| 香蕉视频免费在线观看| 在线观看高清www一个人| 天堂WWW精品视频在线| 爆操女老师| 国产露出调教91| 欧美亚洲综合激情在线| 亚洲日韩99精品AV电影| 雯雯在工地被灌满精在线视频播放| 日本xxxwww在线观看免费| 深夜在线观看| 调教乱淫长篇小说| 国内大量情侣揄拍精品视频| 成年男人露蛋无遮挡| 91免费永久国产在线观看| www黄色网址| 国产精品PANS一区二区三区免费肉| bbbbbxxxxx在线观看| 很黄很黄的婬乱小说| 国产毛片精品久久:| ae86老湿机| 教师麻麻被调教成玩物| 国产精品喷潮抽搐无码| 丁香视频在线| 国产男女爱视频在线观看| 综合网色| 97丨嫩草丨精品|亚洲| 一区二三国产好的精华液单品榜 | 精品免费久久久久久影院| 啊啊啊不要啊| 色婷婷导航| 亚洲秘?AV无码一区二区qq群| 九九电影网456重曰味| 亚洲国产一区在线精选|