在php中 cURL函数有一组相关函数,它是一个非常不错的函数了,我们经常用它来模仿各种登录与采集工作,下面我来给各位介绍CURL函数入门吧。
cURL简介
cURL是一个利用URL语法规定来传输数据和文件的工具,支持很多种协议如HTTP、FTP、TELNET等。PHP也支持 cURL 库。
假如我们要获取某个网页的内容,我们可能会使用下面这几种方法:
代码如下 | 复制代码 |
// 把整个文件读入一个数组中 // 读入一个文件并写入到输出缓冲
|
这几种做法相当简单,但缺乏灵活性和有效的错误处理。而且他们无法完成一些高难度动作,比如处理coockies、验证、表单提交、文件上传等等。
cURL简例
下面给出一段简单的代码,从其中你可以学习到使用cURL的大概步骤,php cURL入门教程。
代码如下 | 复制代码 |
header("Content-type: text/html; charset=utf-8"); // 1. 初始化 // 2. 设置选项 // 3. 执行并获取返回的内容 // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号 // 5. 释放curl资源 // 输出获得的源代码 |
关于第二步的 curl_setopt() 是最为重要的,有一长串cURL参数可供设置,它们能指定URL请求的各个细节。
获取信息
这是另一个可选的设置项,能够在cURL执行后获取这一请求的有关信息:
代码如下 | 复制代码 |
header("Content-type: text/html; charset=utf-8"); // 1. 初始化 // 2. 设置选项 // 3. 执行并获取HTML文档内容 // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号 // 获取 cURL 信息 并输出 // 5. 释放curl句柄 |
返回的数组中包括了以下信息:
"url" // 资源网络地址
"content_type" // 内容类型和编码
"http_code" // HTTP状态码
"header_size" // header的大小
"request_size" // 请求的大小
"filetime" // 文件创建时间
"ssl_verify_result" // SSL验证结果
"redirect_count" // 跳转技术
"total_time" // 总耗时
"namelookup_time" // DNS查询耗时
"connect_time" // 等待连接耗时
"pretransfer_time" // 传输前准备耗时
"size_upload" // 上传数据的大小
"size_download" // 下载数据的大小
"speed_download" // 下载速度
"speed_upload" // 上传速度
"download_content_length" // 下载内容的长度
"upload_content_length" // 上传内容的长度
"starttransfer_time" // 开始传输的时间
"redirect_time" // 重定向耗时
用POST方法发送数据
新建 from.php
代码如下 | 复制代码 |
// 待 post 的数据 // 1. 初始化 // 2. 设置选项 // 3. 执行并获取返回内容 // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号 // 5. 释放curl句柄 // 输出内容
|
新建 to.php
代码如下 | 复制代码 |
echo "从 from.php POST数据到 to.php 成功!以下为 to.php 返回的数据:
|
文件上传
上传文件和前面的POST十分相似,因为所有的文件上传表单都是通过POST方法提交的。
新建 from.php
代码如下 | 复制代码 |
// 待 post 的数据 // 1. 初始化 // 2. 设置选项 // 3. 执行并获取返回内容 // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号 // 5. 释放curl资源 // 输出内容
|
新建 to.php:
代码如下 | 复制代码 |
print_r($_FILES); |
如果你需要上传一个文件,只需要把文件路径像一个post变量一样传过去,不过记得在前面加上@符号。
另一些有用的cURL范例
HTTP认证
如果某个URL请求需要基于 HTTP 的身份验证,你可以使用下面的代码:
代码如下 | 复制代码 |
header("Content-type: text/html; charset=utf-8"); // 1. 初始化 // 2. 设置选项 // 3. 执行并获取返回内容 // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号 // 5. 释放curl句柄 |
FTP上传
PHP 自带有 FTP 类库,但你也能用 cURL,也可以参考这篇文章:php使用cURL来实现ftp上传
代码如下 | 复制代码 |
header("Content-type: text/html; charset=utf-8"); // 开一个文件指针 // 1. 初始化 // 2. 设置选项 // 3. 执行并获取返回内容 // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号 // 5. 释放curl句柄
|
你可以用代理发起cURL请求:
代码如下 | 复制代码 |
header("Content-type: text/html; charset=utf-8"); // 1. 初始化 // 2. 设置选项 // 3. 执行并获取返回内容 // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号 // 5. 释放curl句柄
|
回调函数
可以在一个URL请求过程中,让cURL调用某指定的回调函数。例如,在内容或者响应下载的过程中立刻开始利用数据,而不用等到完全下载完。
代码如下 | 复制代码 |
header("Content-type: text/html; charset=utf-8"); // 1. 初始化 // 2. 设置选项 // 3. 执行并获取返回内容 // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号 // 5. 释放curl句柄 // 回调函数
|
这个回调函数必须返回字串的长度,不然此功能将无法正常使用,在URL响应接收的过程中,只要收到一个数据包,这个函数就会被调用。
讲到了半天我们再来一个高级实用点的功能cURL来实现ftp上传
web服务器的上传限制:
php的默认上传限制为2M,如果你要上传超过2M的文件的话,你必须修改你的PHP配置 或者 用下面的代码建立一个 .htaceess文件。
代码如下 | 复制代码 |
php_value upload_max_filesize 16M |
这里设置最大的文件上传限制为16M,post_max_size 的值为20M,因为可能在上传文件的同时,我们还需要POST表单里的其他表单项的值。
建立的 .htaccess 要放在你的上传脚本同一个目录下。
使用 cURL 进行文件上传
cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多种协议,如HTTP、FTP、TELNET等。它能完成很多高难度任务——如处理coockies、验证、表单提交、文件上传、ftp上传等等。
这里,我们准备通过使用web表单来上传一个文件到ftp空间上,这里的ftp空间是有密码保护的。
代码如下 | 复制代码 |
这个表单页面比较简单,仅仅是拥有一个文件上传的功能。
然后我们需要下面的php代码来接收上传过来的文件,使用 cURL 打开一个文件流并传送到远程ftp服务器上去。
代码如下 | 复制代码 |
|
当用户选择了并上传了一个文件,文件先保存在web服务器上,我们使用 fopen 打开这个临时文件并初始一个cURL会话,在发送的url中,把ftp的账号和密码填上,然后再设置cURL的其他必备参数,即可。如果返回的错误数量为0,那么文件就上传成功了。
小结
今天我们一起学习了cURL库的强大功能和灵活的扩展性 原文整理自:3a教程网

phpsessionstrackuserdataacrossmultiplepagerequestsususingauniqueIdStoredInAcookie.here'showtomanagetheMeftically : 1) STARTASESSIONSTART_START () andSTAREDATAIN $ _SESSION.2) RegenerATERATESSESSIDIDAFTERLOGINWITHSESSION_RATERATERATES (True) TopreventSES

PHP에서 세션 데이터를 통한 반복은 다음 단계를 통해 달성 할 수 있습니다. 1. Session_start ()를 사용하여 세션을 시작하십시오. 2. $ _session 배열의 모든 키 값 쌍을 통해 Foreach 루프를 통과합니다. 3. 복잡한 데이터 구조를 처리 할 때 is_array () 또는 is_object () 함수를 사용하고 print_r ()를 사용하여 자세한 정보를 출력하십시오. 4. Traversal을 최적화 할 때 페이징을 사용하여 한 번에 많은 양의 데이터를 처리하지 않도록 할 수 있습니다. 이를 통해 실제 프로젝트에서 PHP 세션 데이터를보다 효율적으로 관리하고 사용하는 데 도움이됩니다.

이 세션은 서버 측 상태 관리 메커니즘을 통해 사용자 인증을 인식합니다. 1) 세션 생성 및 고유 ID의 세션 생성, 2) ID는 쿠키를 통해 전달됩니다. 3) ID를 통해 서버 저장 및 세션 데이터에 액세스합니다. 4) 사용자 인증 및 상태 관리가 실현되어 응용 프로그램 보안 및 사용자 경험이 향상됩니다.

tostoreauser'snameinaphpsession, startSessionstart_start (), wathsignthenameto $ _session [ 'username']. 1) useSentess_start () toinitializethesession.2) assimeuser'snameto $ _session [ 'username']

phpsession 실패 이유에는 구성 오류, 쿠키 문제 및 세션 만료가 포함됩니다. 1. 구성 오류 : 올바른 세션을 확인하고 설정합니다. 2. 쿠키 문제 : 쿠키가 올바르게 설정되어 있는지 확인하십시오. 3. 세션 만료 : 세션 시간을 연장하기 위해 세션을 조정합니다 .GC_MAXLIFETIME 값을 조정하십시오.

PHP에서 세션 문제를 디버그하는 방법 : 1. 세션이 올바르게 시작되었는지 확인하십시오. 2. 세션 ID의 전달을 확인하십시오. 3. 세션 데이터의 저장 및 읽기를 확인하십시오. 4. 서버 구성을 확인하십시오. 세션 ID 및 데이터를 출력, 세션 파일 컨텐츠보기 등을 통해 세션 관련 문제를 효과적으로 진단하고 해결할 수 있습니다.

Session_Start ()로 여러 통화를하면 경고 메시지와 가능한 데이터 덮어 쓰기가 발생합니다. 1) PHP는 세션이 시작되었다는 경고를 발행합니다. 2) 세션 데이터의 예상치 못한 덮어 쓰기를 유발할 수 있습니다. 3) Session_status ()를 사용하여 반복 통화를 피하기 위해 세션 상태를 확인하십시오.

SESSION.GC_MAXLIFETIME 및 SESSION.COOKIE_LIFETIME을 설정하여 PHP에서 세션 수명을 구성 할 수 있습니다. 1) SESSION.GC_MAXLIFETIME 서버 측 세션 데이터의 생존 시간을 제어합니다. 2) 세션 .Cookie_Lifetime 클라이언트 쿠키의 수명주기를 제어합니다. 0으로 설정하면 브라우저가 닫히면 쿠키가 만료됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구
