网络函数提供一系列联网函数。

  • checkdnsrr — 给指定的主机(域名)或者IP地址做DNS通信检查
  • closelog — 关闭系统日志链接
  • define_syslog_variables — Initializes all syslog related variables
  • dns_check_record — 别名 checkdnsrr

    根据不同记录(type)类型查询主机(host)相应的DNS记录。

    host:主机(host)可以是一个IP地址也可以是域名。

    type:解析记录类型(type)可能是下面这些类型中的任何一个:A,MX,NS,SOA,PTR,CNAME,AAAA,A6, SRV,NAPTR,TXT 或者 ANY。

  • dns_get_mx — 别名 getmxrr

  • dns_get_record — 获取指定主机的DNS记录

    获取指定主机(hostname)的DNS记录。

  • fsockopen — 打开一个网络连接或者一个Unix套接字连接

    fsockopen()将返回一个文件句柄,之后可以被其他文件类函数调用(例如:fgets(),fgetss(),fwrite(),fclose()还有feof())。如果调用失败,将返回FALSE。

  • gethostbyaddr — 获取指定的IP地址对应的主机名

  • gethostbyname — 返回主机名对应的 IPv4地址。

  • gethostbynamel — 获取互联网主机名对应的 IPv4 地址列表

  • gethostname — 获取主机名

  • getmxrr — 获取互联网主机名对应的 MX 记录

  • getprotobyname — Get protocol number associated with protocol name

  • getprotobynumber — Get protocol name associated with protocol number

  • getservbyname — 获取互联网服务协议对应的端口

  • getservbyport — Get Internet service which corresponds to port and protocol

  • header_register_callback — 调用一个 header 函数

    注册一个函数,在 PHP 开始发送输出时调用。

    PHP 准备好所有响应头,在发送内容之前执行 callback,创建了一个发送响应头的操作窗口。

  • header — 发送原生 HTTP 头

    header() 用于发送原生的 HTTP 头。

    请注意 header() 必须在任何实际输出之前调用,不管是普通的 HTML 标签,还是文件或 PHP 输出的空行,空格。这是个常见的错误,在通过include,require,或者其访问其他文件里面的函数的时候,如果在header()被调用之前,其中有空格或者空行。同样的问题也存在于单独的 PHP/HTML 文件中。

    //200 正常状态  
    header('HTTP/1.1 200 OK');  
      
    // 301 永久重定向,记得在后面要加重定向地址 Location:$url  
    header('HTTP/1.1 301 Moved Permanently');  
      
    // 重定向,其实就是302 暂时重定向  
    header('Location: http://www.maiyoule.com/');  
      
    // 设置页面304 没有修改  
    header('HTTP/1.1 304 Not Modified');  
      
    // 显示登录框,  
    header('HTTP/1.1 401 Unauthorized');  
    header('WWW-Authenticate: Basic realm="登录信息"');  
    echo '显示的信息!';  
    
    if (!isset($_SERVER['PHP_AUTH_USER'])) {
        header('WWW-Authenticate: Basic realm="My Realm1"');
        header('HTTP/1.0 401 Unauthorized');
        echo 'Text to send if user hits Cancel button';
        exit;
    } else {
        echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
        echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
    }
      
    // 403 禁止访问  
    header('HTTP/1.1 403 Forbidden');  
      
    // 404 错误  
    header('HTTP/1.1 404 Not Found');  
      
    // 500 服务器错误  
    header('HTTP/1.1 500 Internal Server Error');  
      
    // 3秒后重定向指定地址(也就是刷新到新页面与 <meta http-equiv="refresh" content="10;http://www.9ong.com/ /> 相同)  
    header('Refresh: 3; url=http://www.9ong.com/');  
    echo '10后跳转到http://www.9ong.com';  
      
    // 重写 X-Powered-By 值  
    header('X-Powered-By: PHP/5.3.0');  
    header('X-Powered-By: Brain/0.6b');  
      
    //设置上下文语言  
    header('Content-language: en');  
      
    // 设置页面最后修改时间(多用于防缓存)  
    $time = time() - 60; //建议使用filetime函数来设置页面缓存时间  
    header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT');  
      
    // 设置内容长度  
    header('Content-Length: 39344');  
      
    // 设置头文件类型,可以用于流文件或者文件下载  
    header('Content-Type: application/octet-stream');  
    header('Content-Disposition: attachment; filename="example.zip"');   
    header('Content-Transfer-Encoding: binary');  
    readfile('example.zip');//读取文件到客户端  
      
    //禁用页面缓存  
    header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');  
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');   
    header('Pragma: no-cache');  
      
    //设置页面头信息  
    header('Content-Type: text/html; charset=iso-8859-1');  
    header('Content-Type: text/html; charset=utf-8');  
    header('Content-Type: text/plain');   
    header('Content-Type: image/jpeg');   
    header('Content-Type: application/zip');   
    header('Content-Type: application/pdf');   
    header('Content-Type: audio/mpeg');  
    header('Content-Type: application/x-shockwave-flash');   
    
    
    //声明一个下载的文件
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="testname.zip"');
    header('Content-Transfer-Encoding: binary');
    readfile('test.zip');
      
      
    //对当前文档禁用缓存
    header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
      
      
      
      
    //声明一个需要下载的xls文件
    header('Content-Disposition: attachment; filename=ithhc.xlsx');
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Length: '.filesize('./test.xls')); 
    header('Content-Transfer-Encoding: binary'); 
    header('Cache-Control: must-revalidate'); 
    header('Pragma: public'); 
    readfile('./test.xls'); 
    
  • header_remove — 删除之前设置的 HTTP 头

    删除之前用 header() 设置的 HTTP 头。

  • headers_list — 返回已发送的 HTTP 响应头(或准备发送的)

    headers_list() 会返回准备发送给浏览器/客户端的 HTTP 头列表。检测这些头是否已经发送,使用 headers_sent()。

  • headers_sent — 检测 HTTP 头是否已经发送

  • http_response_code — 获取/设置响应的 HTTP 状态码

    如果提供了 response_code,将返回先前的状态码。如果未提供 response_code,会返回当前的状态码。在 Web 服务器环境里,这些状态码的默认值都是 200。

  • inet_ntop — Converts a packed internet address to a human readable representation

  • inet_pton — Converts a human readable IP address to its packed in_addr representation

  • ip2long — 将 IPV4 的字符串互联网协议转换成长整型数字

  • long2ip — 将长整型转化为字符串形式带点的互联网标准格式地址(IPV4)

  • openlog — Open connection to system logger

  • pfsockopen — 打开一个持久的网络连接或者Unix套接字连接。

    这个函数的作用与fsockopen()完全一样的,不同的地方在于当在脚本执行完后,连接一直不会关闭。可以说它是fsockopen()的长连接版本。

  • setcookie — 发送 Cookie

    setcookie() 定义了 Cookie,会和剩下的 HTTP 头一起发送给客户端。和其他 HTTP 头一样,必须在脚本产生任意输出之前发送 Cookie(由于协议的限制)。请在产生任何输出之前(包括 和 或者空格)调用本函数。

    一旦设置 Cookie 后,下次打开页面时可以使用 $_COOKIE 读取。 Cookie 值同样也存在于 $_REQUEST。

    参数:

    • name

      Cookie 名称。 value Cookie 值。这个值储存于用户的电脑里,请勿储存敏感信息。比如 name 是 ‘cookiename’,可通过 $_COOKIE[‘cookiename’] 获取它的值。

    • expire

      Cookie 的过期时间。这是个 Unix 时间戳,即 Unix 纪元以来(格林威治时间 1970 年 1 月 1 日 00:00:00)的秒数。也就是说,基本可以用 time() 函数的结果加上希望过期的秒数。或者也可以用 mktime()。 time()+606024*30 就是设置 Cookie 30 天后过期。如果设置成零,或者忽略参数, Cookie 会在会话结束时过期(也就是关掉浏览器时)。

      expire 使用 Unix 时间戳而非 Wdy, DD-Mon-YYYYHH:MM:SS GMT 这样的日期格式,是因为 PHP 内部作了转换。

    • path

      Cookie 有效的服务器路径。设置成 ‘/’ 时,Cookie 对整个域名 domain 有效。如果设置成 ‘/foo/', Cookie 仅仅对 domain 中 /foo/ 目录及其子目录有效(比如 /foo/bar/)。默认值是设置 Cookie 时的当前目录。

    • domain

      Cookie 的有效域名/子域名。设置成子域名(例如 ‘www.example.com’),会使 Cookie 对这个子域名和它的三级域名有效(例如 w2.www.example.com)。要让 Cookie 对整个域名有效(包括它的全部子域名),只要设置成域名就可以了(这个例子里是 ‘example.com’)。

      旧版浏览器仍然在使用废弃的 » RFC 2109,需要一个前置的点 . 来匹配所有子域名。

    • secure

      设置这个 Cookie 是否仅仅通过安全的 HTTPS 连接传给客户端。设置成 TRUE 时,只有安全连接存在时才会设置 Cookie。如果是在服务器端处理这个需求,程序员需要仅仅在安全连接上发送此类 Cookie (通过 $_SERVER[“HTTPS”] 判断)。

    • httponly

      设置成 TRUE,Cookie 仅可通过 HTTP 协议访问。这意思就是 Cookie 无法通过类似 JavaScript 这样的脚本语言访问。要有效减少 XSS 攻击时的身份窃取行为,可建议用此设置(虽然不是所有浏览器都支持),不过这个说法经常有争议。 PHP 5.2.0 中添加。 TRUE 或 FALSE

  • setrawcookie — 发送未经 URL 编码的 cookie

    setrawcookie() 和 setcookie() 非常相似,唯一不同之处是发送到浏览器的 cookie 值没有自动经过 URL 编码(urlencode)。

  • socket_get_status — 别名 stream_get_meta_data

  • socket_set_blocking — 别名 stream_set_blocking

  • socket_set_timeout — 别名 stream_set_timeout

  • syslog — 生成系统日志消息

    syslog()生成将由系统日志记录器分发的日志消息。

    我们建议使用seaslog扩展来记录日志。