PHP Cookbook讀書筆記 – 第16章互聯網服務

發送電子郵件

書中主要是以PEAR中的郵件發送類(Mail)來講解的(關于如何在WIN系統下安裝PEAR可以參考WIN下成功安裝PEAR)。PEAR的MAIL類可以通過3種方式來發送電子郵件:

  1. 通過PHP內部的mail函數來發送
  2. 通過sendmail程序來發送
  3. 通過直接連接到一個smtp服務器發送郵件

書中主要以第一種方式來講解,下面貼一個用SMTP發送郵件的例子

require_once('Mail.php');//包含mail.php函數$params = array('host' => 'smtp.sina.com','port' => '25','username' => 'yourname@sina.com','password' => 'yourpassword','auth' => true);//必須保證這一行$recipients = 'xxxx@sina.com'; //接收人,可以是一個數組來存放多個地址$headers['From']    = "yourname@sina.com";$headers['To']      = "xxxx@sina.com";$headers['Subject'] = "主題";$body = "內容";//選擇smtp的發送方式,當然還支持mail()和sendmail$mail_object = &Mail::factory('smtp', $params);if (PEAR::isError($e = $mail_object->send($recipients, $headers, $body))) {die($e->getMessage() . "\n");}

通過IMAP或POP3讀取郵件

這種方式主要用來讀取郵件的內容,像開心網等都有個導入郵箱聯系人的功能,我原來一直以為是通過這2個協議來實現的,后來查了下資料才發現,原來是通過cUrl實現的。

// open IMAP connection
$mail = imap_open('{mail.server.com:143}',      'username', 'password');
// or, open POP3 connection
$mail = imap_open('{mail.server.com:110/pop3}', 'username', 'password');// grab a list of all the mail headers
$headers = imap_headers($mail);// grab a header object for the last message in the mailbox
$last = imap_num_msg($mail);
$header = imap_header($mail, $last);// grab the body for the same message
$body = imap_body($mail, $last);// close the connection
imap_close($mail);

PHP訪問FTP資源

通常有兩種方式:

  1. PHP內置的FTP函數
  2. cURL擴展

下面是通過PHP內置函數實現的讀取FTP的目錄下的文件列表

set_time_limit(120);
$host="127.0.0.1";//主機名
$uname="username";//用戶名
$pwd ="password";//密碼
$c = ftp_connect($host) or die("Can't connect");
ftp_set_option($c,FTP_TIMEOUT_SEC,120);
ftp_login($c,$uname,$pwd) or die("Can't login");
ftp_pasv($c, TRUE);
$ddd = ftp_nlist($c,".");
ftp_close($c) or die("Can't close");
var_dump($ddd);
print("OK");

DNS相關函數

查詢一個域名的ip地址:gethostbyname( )

查詢一個IP上的域名(不完全可信):gethostbyaddr( )

一個域名可能綁定多個IP:gethostbynamel( )

獲得mx記錄:getmxrr( )

實現PING一個主機

PEAR提供的Net_Ping包可以實現這個功能

$results = $ping->ping('www.oreilly.com');
foreach($results as $result) { print "$result\n"; }
$results = $ping->ping('www.oreilly.com');
foreach($results as $result) { print "$result\n"; }

返回的信息是一個整塊,需要其中的個別值還需要自己解析,實現的效果可能如下面顯示的這樣

PING www.oreilly.com (209.204.146.22) from 192.168.123.101 :32(60) bytes of data.
40 bytes from www.oreilly.com (209.204.146.22): icmp_seq=0 ttl=239time=96.704 msec
40 bytes from www.oreilly.com (209.204.146.22): icmp_seq=1 ttl=239time=86.567 msec
40 bytes from www.oreilly.com (209.204.146.22): icmp_seq=2 ttl=239time=86.563 msec
40 bytes from www.oreilly.com (209.204.146.22): icmp_seq=3 ttl=239time=136.565 msec
40 bytes from www.oreilly.com (209.204.146.22): icmp_seq=4 ttl=239time=86.627 msec-- - www.oreilly.com ping statistics  -- -
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/mdev = 86.563/98.605/136.565/19.381 ms

獲取域名相關的信息

需要用到PEAR的另一個類Net_Whois,其中whois服務器的選擇是這個功能的關鍵,如果不知道如何選擇whois服務器,可以將$server用'whois.internic.net'替換:

require 'Net/Whois.php';
$server = 'whois.networksolutions.com';
$query  = 'example.org';
$data = Net_Whois::query($server, $query);

轉載于:https://www.cnblogs.com/Excellent/archive/2011/11/21/2257227.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/380092.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/380092.shtml
英文地址,請注明出處:http://en.pswp.cn/news/380092.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python | 使用matplotlib.pyplot創建條形圖

Problem statement: Using matplotlib.pyplot library in python draw a bar graph with two values for comparison, using different colors. 問題陳述:在python中使用matplotlib.pyplot庫使用不同的顏色繪制帶有兩個值的條形圖以進行比較。 Program: 程序&#…

SQLSERVER內核架構剖析

我們做管理軟件的,主要核心就在數據存儲管理上。所以數據庫設計是我們的重中之重。為了讓我們的管理軟件能夠穩定、可擴展、性能優秀、可跟蹤排錯、可升級部署、可插件運行,我們往往研發自己的管理軟件開發平臺。我們總是希望去學習別人的開發平臺&#…

輸出以下的楊輝三角形(要求輸入個數字,表示需要輸出幾行)

#include<stdio.h> int main() {int i,j,k,n,x,a[100][100];a[0][1]1;scanf("%d",&x);for(i1;i<x;i){for(j1;j<i;j){a[i][j]a[i-1][j-1]a[i-1][j];printf("%5d ",a[i][j]);//%5d 表示右對齊隔5個空格&#xff1b;}//同理&#xff0c;%-5d…

遠控免殺專題(22)-SpookFlare免殺

轉載&#xff1a;https://mp.weixin.qq.com/s/LfuQ2XuD7YHUWJqMRUmNVA 免殺能力一覽表 幾點說明&#xff1a; 1、上表中標識 √ 說明相應殺毒軟件未檢測出病毒&#xff0c;也就是代表了Bypass。 2、為了更好的對比效果&#xff0c;大部分測試payload均使用msf的windows/mete…

二維動態數組定義及二維靜態數組與**P的區別

矩力集成2008年校園招聘筆試題&#xff1a;動態申請一個二維數組存儲圖像陣列 傳統的解決方案是分配一個指針數組, 然后把每個指針初始化為動態分配的 列"。 以下為一個二維的例子: //typedef int (*arraypoiter)[ncolumns]; int **dynamic_alloc_arrays(unsigned int nro…

置換元素和非置換元素_循環置換數組元素的C程序

置換元素和非置換元素Problem statement: Write a c program to cyclically permute the element of an array. (In right to left direction). Array should be taken as input from the user. 問題陳述&#xff1a;編寫一個c程序來循環置換array的元素 。 (從右到左方向)。 數…

最新Asp.net源碼推薦列表(4月7日)

好久沒有在cnblogs給大家發布asp.net源碼了&#xff0c;把最近整理的一些發給大家&#xff0c;希望對大家有所幫助&#xff0c;以后爭取保持每周發布&#xff01;- WOBIZ第一季1.2版源碼 Hits:29 2008-4-7 [結構圖] [^][VS2005Access] 電子商務2.0軟件是窩窩團隊基于對互聯網…

遠控免殺專題(23)-SharpShooter免殺

轉載&#xff1a;https://mp.weixin.qq.com/s/EyvGfWXLbxkHe7liaNFhGg 免殺能力一覽表 幾點說明&#xff1a; 1、上表中標識 √ 說明相應殺毒軟件未檢測出病毒&#xff0c;也就是代表了Bypass。 2、為了更好的對比效果&#xff0c;大部分測試payload均使用msf的windows/mete…

MySQL 發展史

一.MySQL 標志說明MySQL的海豚標志的名字叫“sakila”&#xff0c;它是由MySQL AB的創始人從用戶在“海豚命名”的競賽中建議的大量的名字表中選出的。獲勝的名字是由來自非洲斯威士蘭的開源軟件開發者Ambrose Twebaze提供。根據Ambrose所說&#xff0c;Sakila來自一種叫SiSwat…

scanf讀取字符_在C語言中使用scanf()讀取整數時跳過字符

scanf讀取字符Let suppose, we want to read time in HH:MM:SS format and store in the variables hours, minutes and seconds, in that case we need to skip columns (:) from the input values. 假設&#xff0c;我們要讀取HH&#xff1a;MM&#xff1a;SS格式的時間 &…

An Algorithm Summary of Programming Collective Intelligence (3)

k-Nearest Neighbors kNN(不要問我叫什么)PCI里面用kNN做了一個價格預測模型&#xff0c;還有一個簡單的電影喜好預測。簡單來說就是要對一個東西做數值預測&#xff0c;就要先有一堆已經有數值的東西&#xff0c;從里面找出和要預測的東西相似的&#xff0c;再通過計算這些相似…

遠控免殺專題(24)-CACTUSTORCH免殺

轉載&#xff1a;https://mp.weixin.qq.com/s/g0CYvFMsrV7bHIfTnSUJBw 免殺能力一覽表 幾點說明&#xff1a; 1、上表中標識 √ 說明相應殺毒軟件未檢測出病毒&#xff0c;也就是代表了Bypass。 2、為了更好的對比效果&#xff0c;大部分測試payload均使用msf的windows/mete…

DOM快捷鍵

DOM所有的命令(CMD) 步驟/方法 cmd命令大全&#xff08;第一部分&#xff09;winver---------檢查Windows版本 wmimgmt.msc----打開windows管理體系結構(WMI) wupdmgr--------windows更新程序 wscript--------windows腳本宿主設置 write----------寫字板 winmsd---------系統…

病毒的手工排除與分析(更新完畢)

作者簡介楊京濤    8年以上的IT行業經驗&#xff0c;理解企業需求&#xff0c;有企業ERP軟件部署規劃能力&#xff0c;有綜合布線網絡規劃和管理能力。熟悉軟件以及各類硬件&#xff0c;電話程控設備&#xff0c;各類網絡設備的管理維護。有編程基礎,熟悉VBA、腳本、批處理…

JavaScript中的String substring()方法和示例

JavaScript | 字符串substring()方法 (JavaScript | String substring() Method) The String.substring() method in JavaScript is used to return a part of the string. The substring() extracted is from the given start and end index of the string. JavaScript中的Str…

Java——方法(練習九九乘法表)

public static void(int,byte…) xxx(int a,int b) 修飾符 返回值類型 方法名(參數類型 參數名1&#xff0c;參數類型 參數名2…)&#xff5b; 方法體語句&#xff1b; return 返回值&#xff1b; &#xff5d; public class fangfa {public static void main(String[] ar…

UVA 10405-Longest Common Subsequence

最長公共子序列&#xff0c;值得注意的是這道題不能用scanf讀字符串。 #include<stdio.h>#include<string.h>#define MAXD 1005char s1[MAXD], s2[MAXD];int dp[MAXD][MAXD];int max( int a, int b){return a > b ? a : b;}void solve(){int len1 strlen(s1 …

對初學者的幾點建議

http://www.cnblogs.com/thcjp/archive/2007/06/14/783157.html 天轟穿vs2005入門.net2.0系列視頻教程推出已經有接近8個月了&#xff0c;這期間我收到非常多的反饋&#xff0c;我只能用非常來形容&#xff0c;呵呵&#xff0c;當然也了解了很多人的心理和學習方法。但是很遺憾…

系統固件升級_固件和操作系統之間的差異

系統固件升級固件 (Firmware) Firmware is somewhere similar to software but it is not a software. Somehow it is a modified form of software. 固件與軟件相似&#xff0c;但不是軟件。 不知何故&#xff0c;它是軟件的修改形式。 Firmware is fixed data or code that …

cobalt strick 4.0 系列教程 (5)--- 獲取立足點

https://blog.ateam.qianxin.com/CobaltStrike4.0%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C_%E4%B8%AD%E6%96%87%E7%BF%BB%E8%AF%91.pdf 0x01 客戶端 System Profiler [即探針] System Profiler 是一個為客戶端攻擊提供的偵察工具。這個工具啟動一個本地的 web 服務器&#xff0…