php如何获取带参数页面的内容
cURL可以使用URL的语法模拟浏览器来传输数据,
因为它是模拟浏览器,因此它同样支持多种协议,
FTP,
FTPS,
HTTP,
HTTPS,
GOPHER,
TELNET,
DICT,
FILE
以及
LDAP等协议都可以很好的支持,包括一些:
HTTPS认证,HTTP
POST方法,HTTP
PUT方法,FTP上传,keyberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证,
下载文件断点续传,上传文件断点续传,http代理服务器管道,甚至它还支持IPv6,scoket5代理服务器,通过http代理服务器上传文件
到FTP服务器等等。
这就是我们为什么要使用cURL的原因!
使用cURL完成简单的请求主要分为以下四步:
1初始化,创建一个新cURL资源
2设置URL和相应的选项
3抓取URL并把它传递给浏览器
4关闭cURL资源,并且释放系统资源
我们来采集一个页面,通常情况下,我们会使用file_get_contents()函数来获取:
像这样:
<php
$str = file_get_contents('http://bbslampbrothernet');
//或者是:
$str = file("http://bbslampbrothernet");
//或者是:
readfile("http://bbslampbrothernet");
>
这样我们会发现,我们没有办法有效地进行错误处理,更重要的是我们没有办法完成一些高难度的任务:
如:处理cookies,验证,表单提交,文件上传等等。
好,现在我们来用代码完成上述cURL的四步:
<php
//1初始化,创建一个新cURL资源
$ch = curl_init();
//2设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, "http://wwwlampbrothernet/");
curl_setopt($ch, CURLOPT_HEADER, 0);
//3抓取URL并把它传递给浏览器
curl_exec($ch);
//4关闭cURL资源,并且释放系统资源
curl_close($ch);
>
比如有一个网址为
http://域名/goodsphpu=59&id=24#pinglun
我想得到这个id值
可以用正则,也可以用php函数解析到数组中
用正则可以这样
preg_match('/id=(\d+)/',$_SERVER["REQUEST_URI"],$m);//$_SERVER 这个表示当前网址url
print_r($m[1]);exit;
或者用parse_url()及parse_str()函数
$cur_q=parse_url($_SERVER["REQUEST_URI"],PHP_URL_QUERY);
parse_str($cur_q,$myArray);
print_r($myArray["id"]);exit;
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
PHP的特性包括:
1 PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。
2 PHP可以比CGI或者Perl更快速的执行动态网页——动态页面方面,与其他的编程语言相比,
PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多;
PHP具有非常强大的功能,所有的CGI的功能PHP都能实现。
3 PHP支持几乎所有流行的数据库以及操作系统。
4 最重要的是PHP可以用C、C++进行程序的扩展!
参考资料: PHP
0条评论