以下均参考自 php.net
1.curl_setopt_array()
此函数为CURL传输会话批量设置选项。这个函数对于需要设置大量的curl选项是非常有用的,不需要重复的调用curl_setopt().
语法:
bool curl_setopt_array(resource $ch,array $options)
参数:
- ch :有curl_init()返回的CURL句柄
- options :一个array用来确定将被设置的选项及其值。数组的键值必须是一个有效的curl_setopt()常量或者是它们对等的整数值
返回值:
如果全部的选项都被成功设置,返回 TRUE.如果一个选项不能被成功设置,马上返回FALSE,忽略其后的任何在options数组中的选项。
Example:
#初始化一个新的CURL会话并抓取一个web页面
<?php
//创建一个新CURL资源
$ch = curl_init();
//设置URL和相应的选项
$options = array(
CURL_URL => 'http://www.example.com/',
CURL_HEADER => false
);
curl_setopt_array($ch,$options);
//抓取URL并把它传递给浏览器
curl_exec($ch);
//关闭CURL资源,并且释放系统资源
curl_close($ch);
?>
2.curl_exec()
执行给定的CURL会话。这个函数应该在初始化一个CURL会话并且全部的选项都被设置后被调用。
语法:
mixed curl_exec(resource $ch)
参数:
- ch :由curl_init()返回的CURL句柄
返回值:
成功时返回TRUE,或者在失败时返回FALSE。然而,如果CURLOPT_RETURNTRANSFER选项被设置,函数执行成功时会返回执行的结果,失败时返回FALSSE。
Example:获取一个网页
<?php
//创建一个CURL资源
$ch = curl_init();
//设置URL和相应的选项
curl_setopt($ch,CURLOPT_URL,"http://www.example.com/");
curl_setopt($ch,CURLOPT_HEADER,0);
//抓取URL并把它传递给浏览器
curl_exec($ch);
//关闭CURL资源,并且释放系统资源
curl_close($ch);
?>
3.curl_getinfo()
获取一个CURL连接资源句柄的信息
语法:
mixed curl_getinfo(resource $ch [,int $opt = 0])
参数:
- ch :由curl_init()返回的CURL句柄。
- opt :这个参数的可选值很多,具体可以参考手册。
返回值:如果opt被设置,以字符串形式返回它的值。否则返回一个关联数组。
Example:
<?php
//创建一个CURL句柄
$ch = curl_init('http://www.yahoo.com/');
//执行
curl_exec($ch);
//检查是否有错误发生
if (!curl_errno($ch)){
$info = curl_getinfo($ch);
echo 'Took'.$info['total_time'].'second to second a request to'.$info['url'];
}
//close handle
curl_close($ch);
?>
4.preg_match()
执行一个正则表达式匹配
语法:
//搜索subject与pattern给定的正则表达式的一个匹配
int preg_match (string $pattern,string $subject [,array $matches[,int $flags = 0[,int $offset = 0]]])
参数:
- pattern :要搜索的模式,字符串类型
- subject :输入字符串
- matches :如果提供了参数matches,它将被填充为搜索结果。$matches[0]将包含完整模式匹配到的文本,$matches[1]将包含第一个捕获子组匹配到的文本,以此类推
- flags :flags可以被设置为以下标记值:
- PREG_OFFSET_CAPTURE :如果传递了这个标记,对于每一个出现的匹配返回时会附加字符串偏移量(相对于目标字符串的)。注意:这会改变填充到matches参数的数组,使其每个元素成为一个由第0个元素是匹配到的字符串,第1个元素是该匹配字符串在目标字符串subject中的偏移量
- offset :通常,搜索从目标字符串的开始位置开始。可选参数offset用于指定目标字符串的某个未知开始搜索(单位是字节)
返回值:
preg_match()返回pattern的匹配次数。它的值将是0次(不匹配)或1次,因为preg_match()在第一次匹配后将会停止搜索。preg_match_all()不同于此,它会一直搜索subject直到到达结尾。如果发生错误preg_match()返回FALSE
Example1:
<?php
//模式分隔符后的"i"标记这是一个大小写不敏感的搜索
if(preg_match("/php/i","PHP is the web scripting language of choice.")){
echo "A match was found.";
}else{
echo "A match was not found.";
}
?>
Example2: 获取URL中的域名
<?php
//从URL中获取主机名
preg_match('@^(?:http://)?([^/]+)@i',"http://www.php.net/index.html",$matches);
$host = $matches[1];
//获取主机名的后面两部分
preg_match('/[^.]+\.[^.]+$/',$host,$matches);
echo "domain name is : {$matches[0]}\n";
?>