http_build_query($query_data);//生成 URL-encode 之后的请求字符串
$query_data:可以是数组或包含属性的对象。一个 query_data
数组可以是简单的一维结构,也可以是由数组组成的数组(其依次可以包含其它数组)。如果 query_data
是一个对象,只有 public 的属性会加入结果。
<?php
$data = array('foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');
echo http_build_query($data) . "\n";
echo http_build_query($data, '', '&');
?>
以上例程会输出:
foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&baz=boom&cow=milk&php=hypertext+processor
parse_url($url);//解析 URL,返回其组成部分
<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH);
?>
以上例程会输出:
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)
/path
fsockopen(str $hostname, $port, $errno, $errstr, $timeout);//打开一个网络连接或者一个Unix套接字连接
$hostname:基于TCP/IP协议的SSL或者TLS的客户端连接到远程主机。
$port:端口号
$errno:如果errno
的返回值为0,而且这个函数的返回值为FALSE
,那么这表明该错误发生在套接字连接(connect())调用之前,导致连接失败的原因最大的可能是初始化套接字的时候发生了错误。
$errstr:错误信息将以字符串的信息返回。
$timeout:设置连接的时限,单位为秒。
<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>