PHP函数整理(二)

时间:2023-02-10 12:27:31

以下均参考自 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";
?>