分类
vps综合利用

PHP cURL 函数

PHP cURL 函数


概述

PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。

libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。

PHP中使用cURL实现Get和Post请求的方法

这些函数在PHP 4.0.2中被引入。


需求

为了使用PHP的cURL函数,你需要安装 » libcurl包。

PHP需要使用libcurl 7.0.2-beta 或者更高版本。在PHP 4.2.3 里使用cURL,你需要安装7.9.0或更高版本的libcurl。从PHP 4.3.0开始你需要安装7.9.0或更高版本的libcurl。从PHP 5.0.0开始你需要安装7.10.5或更高版本的libcurl。


安装

要使用PHP的cURL支持你必须在编译PHP时加上–with-curl[=DIR] 选项,DIR为包含lib和include的目录路径。在include目录中必须有一个名为curl,包含了easy.h和curl.h的文件夹。lib文件夹里应该有一个名为libcurl.a的文件。对于PHP 4.3.0你可以配置–with-curlwrappers 使cURL使用URL流。

注意: Win32用户注意 要在Windows环境下使用这个模块,libeay32.dll和ssleay32.dll必须放到PATH环境变量包含的目录下。 不用cURL网站上的libcurl.dll。


资源类型

这个扩展定义了2中资源:cURL句柄和cURL批处理句柄。


PHP cURL 函数

以下包含了PHP cURL函数列表:

函数 描述
curl_close() 关闭一个cURL会话。
curl_copy_handle() 复制一个cURL句柄和它的所有选项。
curl_errno() 返回最后一次的错误号。
curl_error() 返回一个保护当前会话最近一次错误的字符串。
curl_escape() 返回转义字符串,对给定的字符串进行URL编码。
curl_exec() 执行一个cURL会话。
curl_file_create() 创建一个 CURLFile 对象。
curl_getinfo() 获取一个cURL连接资源句柄的信息。
curl_init() 初始化一个cURL会话。
curl_multi_add_handle() 向curl批处理会话中添加单独的curl句柄。
curl_multi_close() 关闭一组cURL句柄。
curl_multi_exec() 运行当前 cURL 句柄的子连接。
curl_multi_getcontent() 如果设置了CURLOPT_RETURNTRANSFER,则返回获取的输出的文本流。
curl_multi_info_read() 获取当前解析的cURL的相关传输信息。
curl_multi_init() 返回一个新cURL批处理句柄。
curl_multi_remove_handle() 移除curl批处理句柄资源中的某个句柄资源。
curl_multi_select() 等待所有cURL批处理中的活动连接。
curl_multi_setopt() 设置一个批处理cURL传输选项。
curl_multi_strerror() 返回描述错误码的字符串文本。
curl_pause() 暂停及恢复连接。
curl_reset() 重置libcurl的会话句柄的所有选项。
curl_setopt_array() 为cURL传输会话批量设置选项。
curl_setopt() 设置一个cURL传输选项。
curl_share_close() 关闭cURL共享句柄。
curl_share_init() 初始化cURL共享句柄。
curl_share_setopt() 设置一个共享句柄的cURL传输选项。
curl_strerror() 返回错误代码的字符串描述。
curl_unescape() 解码URL编码后的字符串。
curl_version() 获取cURL版本信息。

分类
vps综合利用

PHP FTP 函数

PHP FTP 函数


PHP FTP 简介

FTP 函数通过文件传输协议 (FTP) 提供对文件服务器的客户端访问。

FTP 函数用于打开、登录以及关闭连接,同时用于上传、下载、重命名、删除及获取文件服务器上的文件信息。不是所有的 FTP 函数对每个服务器都起作用或返回相同的结果。自 PHP 3 起,FTP 函数可用。

这些函数用于对 FTP 服务器进行细致的访问。如果您仅仅需要对 FTP 服务器进行读写操作,建议使用 Filesystem 函数中的 ftp:// wrapper。


安装

PHP 的 Windows 版本内置了对 FTP 扩展的支持。无需加载任何附加扩展库即可使用 FTP 函数。

然而,如果您运行的是 PHP 的 Linux 版本,在编译 PHP 的时候请添加 –enable-ftp 选项(PHP4 或以上版本)或者 –with-ftp 选项(PHP3 版本)。


PHP FTP 函数

PHP:指示支持该函数的最早的 PHP 版本。

函数 描述 PHP
ftp_alloc() 为要上传到 FTP 服务器的文件分配空间。 5
ftp_cdup() 把当前目录改变为 FTP 服务器上的父目录。 3
ftp_chdir() 改变 FTP 服务器上的当前目录。 3
ftp_chmod() 通过 FTP 设置文件上的权限。 5
ftp_close() 关闭 FTP 连接。 4
ftp_connect() 打开 FTP 连接。 3
ftp_delete() 删除 FTP 服务器上的一个文件。 3
ftp_exec() 在 FTP 服务器上执行一个程序/命令。 4
ftp_fget() 从 FTP 服务器上下载一个文件并保存到本地一个已经打开的文件中。 3
ftp_fput() 上传一个已经打开的文件,并在 FTP 服务器上把它保存为一个文件。 3
ftp_get_option() 返回 FTP 连接的各种运行时选项。 4
ftp_get() 从 FTP 服务器上下载文件。 3
ftp_login() 登录 FTP 服务器。 3
ftp_mdtm() 返回指定文件的最后修改时间。 3
ftp_mkdir() 在 FTP 服务器上创建一个新目录。 3
ftp_nb_continue() 连续获取/发送文件。(无阻塞) 4
ftp_nb_fget() 从 FTP 服务器上下载一个文件并保存到本地一个已经打开的文件中。(无阻塞) 4
ftp_nb_fput() 上传一个已经打开的文件,并在 FTP 服务器上把它保存为一个文件。(无阻塞) 4
ftp_nb_get() 从 FTP 服务器上下载文件。(无阻塞) 4
ftp_nb_put() 把文件上传到 FTP 服务器上。(无阻塞) 4
ftp_nlist() 返回 FTP 服务器上指定目录的文件列表。 3
ftp_pasv() 把被动模式设置为打开或关闭。 3
ftp_put() 把文件上传到 FTP 服务器上。 3
ftp_pwd() 返回当前目录名称。 3
ftp_quit() ftp_close() 的别名。 3
ftp_raw() 向 FTP 服务器发送一个 raw 命令。 5
ftp_rawlist() 返回指定目录中文件的详细列表。 3
ftp_rename() 重命名 FTP 服务器上的文件或目录。 3
ftp_rmdir() 删除 FTP 服务器上的一个目录。 3
ftp_set_option() 设置 FTP 连接的各种运行时选项。 4
ftp_site() 向服务器发送 SITE 命令。 3
ftp_size() 返回指定文件的大小。 3
ftp_ssl_connect() 打开一个安全的 SSL-FTP 连接。 4
ftp_systype() 返回 FTP 服务器的系统类型标识符。 3


PHP FTP 常量

PHP:指示支持该常量的最早的 PHP 版本。

常量 描述 PHP
FTP_ASCII 3
FTP_TEXT 3
FTP_BINARY 3
FTP_IMAGE 3
FTP_TIMEOUT_SEC 3
FTP_AUTOSEEK 4
FTP_AUTORESUME 为 GET 和 PUT 请求自动决定恢复和开始的位置 4
FTP_FAILED 异步传输失败 4
FTP_FINISHED 异步传输成功 4
FTP_MOREDATA 异步传输是活动状态的 4

分类
vps综合利用

Python3 标准库概览

Python3 标准库概览

操作系统接口

os模块提供了不少与操作系统相关联的函数。

 >>> import os >>> os.getcwd()      # 返回当前的工作目录 'C://Python34' >>> os.chdir('/server/accesslogs')   # 修改当前的工作目录 >>> os.system('mkdir today')   # 执行系统命令 mkdir  0 

建议使用 “import os” 风格而非 “from os import *”。这样可以保证随操作系统不同而有所变化的 os.open() 不会覆盖内置函数 open()。

在使用 os 这样的大型模块时内置的 dir() 和 help() 函数非常有用:

 >>> import os >>> dir(os) <returns a list of all module functions> >>> help(os) <returns an extensive manual page created from the module's docstrings> 

针对日常的文件和目录管理任务,:mod:shutil 模块提供了一个易于使用的高级接口:

 >>> import shutil >>> shutil.copyfile('data.db', 'archive.db') >>> shutil.move('/build/executables', 'installdir') 

文件通配符

glob模块提供了一个函数用于从目录通配符搜索中生成文件列表:

 >>> import glob >>> glob.glob('*.py') ['primes.py', 'random.py', 'quote.py'] 

命令行参数

通用工具脚本经常调用命令行参数。这些命令行参数以链表形式存储于 sys 模块的 argv 变量。例如在命令行中执行 “python demo.py one two three” 后可以得到以下输出结果:

 >>> import sys >>> print(sys.argv) ['demo.py', 'one', 'two', 'three'] 

错误输出重定向和程序终止

sys 还有 stdin,stdout 和 stderr 属性,即使在 stdout 被重定向时,后者也可以用于显示警告和错误信息。

 >>> sys.stderr.write('Warning, log file not found starting a new one/n') Warning, log file not found starting a new one 

大多脚本的定向终止都使用 “sys.exit()”。


字符串正则匹配

re模块为高级字符串处理提供了正则表达式工具。对于复杂的匹配和处理,正则表达式提供了简洁、优化的解决方案:

 >>> import re >>> re.findall(r'/bf[a-z]*', 'which foot or hand fell fastest') ['foot', 'fell', 'fastest'] >>> re.sub(r'(/b[a-z]+) /1', r'/1', 'cat in the the hat') 'cat in the hat' 

如果只需要简单的功能,应该首先考虑字符串方法,因为它们非常简单,易于阅读和调试:

 >>> 'tea for too'.replace('too', 'two') 'tea for two' 

数学

math模块为浮点运算提供了对底层C函数库的访问:

 >>> import math >>> math.cos(math.pi / 4) 0.70710678118654757 >>> math.log(1024, 2) 10.0 

random提供了生成随机数的工具。

 >>> import random >>> random.choice(['apple', 'pear', 'banana']) 'apple' >>> random.sample(range(100), 10)   # sampling without replacement [30, 83, 16, 4, 8, 81, 41, 50, 18, 33] >>> random.random()    # random float 0.17970987693706186 >>> random.randrange(6)    # random integer chosen from range(6) 4 

访问 互联网

有几个模块用于访问互联网以及处理网络通信协议。其中最简单的两个是用于处理从 urls 接收的数据的 urllib.request 以及用于发送电子邮件的 smtplib:

 >>> import os >>> dir(os) <returns a list of all module functions> >>> help(os) <returns an extensive manual page created from the module's docstrings> 

0

注意第二个例子需要本地有一个在运行的邮件服务器。


日期和时间

datetime模块为日期和时间处理同时提供了简单和复杂的方法。

支持日期和时间算法的同时,实现的重点放在更有效的处理和格式化输出。

该模块还支持时区处理:

 >>> import os >>> dir(os) <returns a list of all module functions> >>> help(os) <returns an extensive manual page created from the module's docstrings> 

1


数据压缩

以下模块直接支持通用的数据打包和压缩格式:zlib,gzip,bz2,zipfile,以及 tarfile。

 >>> import os >>> dir(os) <returns a list of all module functions> >>> help(os) <returns an extensive manual page created from the module's docstrings> 

2


性能度量

有些用户对了解解决同一问题的不同方法之间的性能差异很感兴趣。Python 提供了一个度量工具,为这些问题提供了直接答案。

例如,使用元组封装和拆封来交换元素看起来要比使用传统的方法要诱人的多,timeit 证明了现代的方法更快一些。

 >>> import os >>> dir(os) <returns a list of all module functions> >>> help(os) <returns an extensive manual page created from the module's docstrings> 

3

相对于 timeit 的细粒度,:mod:profile 和 pstats 模块提供了针对更大代码块的时间度量工具。


测试模块

开发高质量软件的方法之一是为每一个函数开发测试代码,并且在开发过程中经常进行测试

doctest模块提供了一个工具,扫描模块并根据程序中内嵌的文档字符串执行测试。

测试构造如同简单的将它的输出结果剪切并粘贴到文档字符串中。

通过用户提供的例子,它强化了文档,允许 doctest 模块确认代码的结果是否与文档一致:

 >>> import os >>> dir(os) <returns a list of all module functions> >>> help(os) <returns an extensive manual page created from the module's docstrings> 

4

unittest模块不像 doctest模块那么容易使用,不过它可以在一个独立的文件里提供一个更全面的测试集:

 >>> import os >>> dir(os) <returns a list of all module functions> >>> help(os) <returns an extensive manual page created from the module's docstrings> 

5

分类
vps综合利用

申请西部数码1年免费TrustAsia DV SSL证书 附申请图文过程

如今,越来越多的网站需要用到SSL证书,尤其是一些用户交互的网站肯定是需要使用到的,因为前几天在升级火狐浏览器后发现没有使用HTTPS网址的网站在注册和登入账户的时候会有安全提醒。如果是单一的内容型网站,暂时不用SSL也是可以的,以后不懂是否一定所有的网站都需要用到。

对于我们普通的个人网站,或者只要简单的实现HTTPS效果的,那我们可以找找免费的SSL证书提供商(虽然付费的也不是很贵),比如我们可能熟悉的Let’s Encrypt免费SSL证书部署起来也不是很难,而且如今很多国内的IDC商家也都有陆续提供免费SSL服务,比如今天老左有看到的西部数码也有提供免费TrustAsiaDV SSL证书一年。

在这篇文章中,老左就准备简单体验下西部数码提供的免费TrustAsia DV SSL证书申请过程,看看是否容易,如果可行至少我们又多了一个选择渠道。

第一、西部数码免费SSL申请地址

申请地址:http://www.west.cn/web/ssl/default/index

前提是我们需要有一个西部数码账户,注册账户我就不演示了,我有账户的,就直接登入。

西部数码免费SSL申请地址

第二、西部数码免费SSL申请图文

1、选择免费SSL证书

选择免费SSL证书

这里有三种类型,我们是需要用免费的,所以选择TrustAsia,域名型DV是免费的。直接提交订单就可以。

2、补全资料

我们下单之后,会看到免费SSL已经在已购证书列表里了,但是需要我们补全信息。

补全资料

这个稍微比较复杂一点 ,但是也不用奇怪,国内的注册商都需要提交信息的,因为我是需要确保能正常批下,所以我还是用了真实信息。(账户我都认证注册了,这里填写虚假也没有必要)这里需要设置证书下载密码,以后下载证书需要用到,所以不要乱写。

3、验证类型

这里选择我们可以验证域名所有权的类型。如果我们当前有站点在做,那可以用文件验证,如果还没站点先申请,那就用DNS验证。

第三、西部数码免费SSL证书审核过程

1、我们在第二步提交之后,开始是进入”订单已完善,等待提交上级”状态。

西部数码免费SSL证书审核过程

然后我们点击下面按钮提交。

2、域名所有权验证

域名所有权验证

这里我们就需要去域名面板修改记录解析,验证域名所有权。

这里,我们在域名验证记录修改后,我觉得这个方法简单,如果是文件验证还要弄个站点挂文件。解析完成之后,大约等了3分钟左右时间,就收到通过邮件。

第四、免费SSL证书申请完成

免费SSL证书申请完成

审核还是蛮快的,审核完毕之后,我们点击详情就可以下载证书,点击下载 后需要输入我们当初设置的下载密码。

西部数码免费SSL证书申请完成

这里我们需要选择下载证书格式,是用到哪里的就选择对应的环境。将下载的.ZIP压缩包解压,后面我们就可以根据需要的环境配置到网站中。

本文固定链接: http://www.laozuo.org/10285.html | 老左博客

分类
vps综合利用

6个免费SSL证书申请 节省成本配置网站HTTPS加密网址

以前,如果我们需要将网站配置SSL证书,其成本还是蛮高的,主要是商家还没有普及提供,而如今无论是付费的还是免费SSL证书都相当的普及。我们应该知道沃通免费SSL证书(目前不免费)、StartSSL、Let’s Encrypt,以及当前国内的很多IDC商家都有提供的赛门铁克 DV SSL证书都是免费的。

不过一直以来关于赛门铁克SSL证书与Chrome兼容争议不断,如果Chrome废除所有Symantec证书支持,其实对于网站还是蛮有影响的,尤其是海外网站用户量还是比较大的。具体的还没有定论,我们可以关注事态发展,如果项目比较重要,建议还是用付费SSL证书。

在这篇文章中,老左整理目前看到的一些免费SSL证书,如果有需要降低成本配置网站HTTPS加密的,可以选择使用。

第一、Let’s Encrypt

官方网站:https://letsencrypt.org/

Let's Encrypt

Let’s Encrypt免费SSL证书的支持/赞助商还是比较多的,其中也包括Chrome,难道其和Symantec的争议是为了普及和推广使用Let’s Encrypt?虽然Let’s Encrypt没有类似一些免费商家提供免费1-3年/次,只是周期免费90天,我们需要设置自动或者提前续约才可以继续使用。

第二、StartSSL

官网网站:https://www.startssl.com/

StartSSL

StartSSL免费SSL证书提供也有一段时间了,以前我记得也有尝试申请过。刚才去官方看到提供3年免费SSL服务,但是看到一些文章有提到StartSSL在火狐浏览器中不信任的问题。如果我们在使用的时候发现与浏览器不兼容信任,那还是选择其他的吧。

第三、阿里云Symantec DV SSL

官网地址:https://www.aliyun.com/product/cas

阿里云Symantec DV SSL

免费DV SSL证书,一次申请每个域名1年,每个阿里账户可以签发20张免费证书。单个域名、二级域名,单独申请是分开算的。

第四、腾讯云DV SSL证书

官网地址:https://console.qcloud.com/ssl

腾讯云DV SSL证书

同样的,也提供免费一年DV SSL证书,申请还算是简单的,只要验证域名所有权就可以申请通过。

第五、西部数码免费SSL

申请地址:http://www.west.cn/web/ssl/default/index

西部数码免费SSL申请地址

免费一年域名型DV SSL证书,老左之前尝试申请过(这里),提交后基本上5分钟之内就可以得到下放证书。

第六、景安免费DV SSL证书

申请地址:http://www.zzidc.com/main/huodong/freessl.html

景安免费DV SSL证书

每个景安账户可以申请3个免费DV SSL证书,老左以前好像看到还需要预约才可以下放资格的,现在好像直接可以免费提交购物车下单申请验证。毕竟大部分国内的IDC商家都免费提供。

总结,我们可以看到当前提供免费SSL证书的商家和服务还是比较多的,从兼容和支持看,我们得考虑到所有的浏览器支持,个人觉得免费的还是Let’s Encrypt好一些,但是对于一般用户的申请可能稍微比其他几个国内的商家申请验证复杂一点。

如果有条件的朋友还是购买付费证书,以后整理一篇文章看看几个主流商家提供付费SSL证书的价格对比,如果有网友在使用付费SSL证书,烦请留言告知哪些还是不错的,性价比还可以接受的。

本文固定链接: http://www.laozuo.org/10326.html | 老左博客