今天我们来学习下php常见的系统函数server和files

自己做的开发项目并不是很多,$_SERVER 和$_FILES ,这两个常用的方法通常是用来操作url  和文件的上传,我用了今天一天的时间来熟悉这个两个常用的函数,并且做些总结,如果有需要的朋友,也可以看看

  1. <?php
  2. //浏览器部分的一些信息
  3. echo $_SERVER[‘PHP_SELF‘]."<br />"; //该函数输出的是你的当前的打开的文件的名称,如:/default.php
  4. echo $_SERVER[‘GATEWAY_INTERFACE‘]."<br />"; //输出你的CGI(网关接口)的信息,如:CGI/1.1
  5. echo $_SERVER[‘HTTP_ACCEPT‘]."<br />";
  6. echo $_SERVER[‘HTTP_ACCEPT_LANGUAGE‘]."<br />"; //浏览器使用的语言
  7. echo $_SERVER[‘HTTP_CONNECTION‘]."<br />"; //前请求的 Connection: 头部的内容。
  8. //用户方面常用到的一些函数
  9. echo $_SERVER[‘REMOTE_ADDR‘]."<br />"; #正在浏览当前页面用户的 IP 地址。如:127.0.0.1
  10. echo $_SERVER[‘REMOTE_HOST‘]."<br />"; #正在浏览当前页面用户的主机名。
  11. echo $_SERVER[‘REMOTE_PORT‘]."<br />"; #用户连接到服务器时所使用的端口。 如:56634 ,php是无法获取用户的mac地址的
  1. //服务器端的一些函数
  2. echo $_SERVER[‘SERVER_ADMIN‘]."<br />";//管理员信息
  3. echo $_SERVER[‘SERVER_PORT‘]."<br />" ;#服务器所使用的端口 ,如:80
  4. echo $_SERVER[‘SCRIPT_FILENAME‘]."<br />"; #当前执行脚本的绝对路径名。如:F:/www1/default.php
  5. echo $_SERVER[‘DOCUMENT_ROOT‘]."<br />"; //该函数的作用是输入你的站点的所在的位置,如:F:/www1
  6. echo $_SERVER[‘REQUEST_METHOD‘]."<br />" ; //用户访问该页面的请求方法
  7. //关于url 的一些函数
  8. echo $_SERVER[‘QUERY_STRING‘]."<br />"; //查询(query)的字符串,但是感觉像是通过get方式传递的参数
  9. echo $_SERVER[‘HTTP_HOST‘]."<br>"; #localhost
  10. echo $_SERVER[‘PHP_SELF‘]."<br>"; //获取网页地址 #/blog/testurl.php
  11. echo $_SERVER["QUERY_STRING"]."<br>"; //获取网址参数 #id=5
  12. echo $_SERVER[‘HTTP_REFERER‘]."<br>";//获取用户代理
  13. //获取完整的url
  14. echo ‘http://‘.$_SERVER[‘HTTP_HOST‘].$_SERVER[‘REQUEST_URI‘];
  15. echo ‘http://‘.$_SERVER[‘HTTP_HOST‘].$_SERVER[‘PHP_SELF‘].‘?‘.$_SERVER[‘QUERY_STRING‘];#http://localhost/blog/testurl.php?id=5
  1. echo ‘http://‘.$_SERVER[‘SERVER_NAME‘].‘:‘.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; //包含端口号的完整url#http://localhost:80/blog/testurl.php?id=5
  2. $url=‘http://‘.$_SERVER[‘SERVER_NAME‘].$_SERVER["REQUEST_URI"];
  3. echo dirname($url);//只取路径 #http://localhost/blog
  1. ?>
  2. <!------------------获取用户的mac地址------------------------>
  3. <?php
  4. @exec("arp -a",$array); //执行arp -a命令,结果放到数组$array中
  5. echo "<pre>";
  6. print_r($array); //打印获取的数组
  7. foreach($array as $value)
  8. {
  9. if( //匹配结果放到数组$mac_array
  10. strpos($value,$_SERVER["REMOTE_ADDR"]) &&
  11. preg_match("/(:?[0-9a-f]{2}[:-]){5}[0-9a-f]{2}/i",$value,$mac_array)
  12. )
  13. {
  14. $mac = $mac_array[0];
  15. break;
  16. }
  17. }
  18. echo $mac; //输出客户端MAC
  19. ?>

关于mac地址,我在测试的时候能够获取到局域网站的其他的账户的mac,但是自己的mac就是无法获取到,不知道是什么情况,难道是我的环境的问题 ?稍后再处理吧!

时间: 2024-12-28 20:58:31

今天我们来学习下php常见的系统函数server和files的相关文章

标准c库函数与Linux下系统函数库 区别 (即带不带缓冲区的学习)

我们都知道,C语言在UNIX/Linux系统下有一套系统调用(系统函数),比如文件操作open().close().write().read()等,而标准C语言的库函数中也有一套对文件的操作函数fopen().fclose().fwrite().fread()等..那么同样是对文件的操作函数,标C与UC有什么区别呢?是标C效率高还是UC效率高呢?今天就让我们来一探究竟. 程序作用:将0~999999这1000000个整型数据写入文件. 1.标准C实现大量数据写入文件: /*文件名test1.c*

Linux下各种常见环境变量的配置

Linux系统下各种环境变量都通过修改/etc/profile文件来实现.由于是系统文件,修改此文件需要root权限.因此实现以下功能都需要用户拥有root权限. 另:不要轻易修改profile文件中的现有内容.应在保证原有内容不变的前提下,在文件的最后插入新的一行. 1.路径变量PATH 当用户在某工作目录执行一个命令或者可执行程序时,若当前路径下不存在该程序,则系统将从PATH路径列表中查找指定的应用程序.还记得java命令,ping命令么?这些应用程序所在的文件夹都包含在了PATH路径中.

android学习---下拉刷新组建

Google官方的下拉刷新组建 activity代码实现: /** * The SwipeRefreshLayout should be used whenever the user * can refresh the contents of a view via a vertical swipe gesture. * */public class MainActivity extends Activity implements SwipeRefreshLayout.OnRefreshListe

向下转型 常见错误

public class Test { /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub            /*         * A 父类         * B 子类         * */                //    A a = new B();//    a.show();//    B

Python学习—面向对象学习下

面向对象下 1.构造方法与析构方法 class People(object): # 构造方法:__init__(),在实例化对象时自动执行的方法 def __init__(self, name, age): self.name = name self.age = age print("创建对象成功.......") # 析构函数:__del__(), 当你删除对象时,自动调用的方法 # 删除对象:del 对象名 def __del__(self): print("删除对象成功

从零开始系统学习C/C++,C++系统学习路线

C++常用在后端服务器,移动互联网后端,经典Windows界面开发,移动互联网端界面开发,跨平台界面开发,图形分析,系统架构,应用设计,还有现在最为流行的分布架构等一些新的技术领域,C/C++工程师必备知识的思维导图. 从零开始系统学习C/C++,C++系统学习路线一.初级入门阶段 在入门之初,首先要做的是通过C/C++语言的学习培养编程思维和动手能力,深刻理解面向过程和面向对象的思想方法.这个阶段你需要学习: ① C语言 数据类型.变量.内存布局.指针基础: 字符串.一维数组.二维数组: 一级

探讨一下常见支付系统的对外接口

本文作者为我的朋友 Terry Gao,某互联网架构师,首发于其个人公众号[PHP架构] 经授权允许本账号转载. 看了之后,感觉写的非常到位,对于测试人员也很有帮助,故原文直接发布. 如果有朋友想了解支付相关测试,请点击-->互联网产品支付功能如何测试? 点击尾部 阅读原文,进入对方公众号. 原文如下 作为一个具备用户交易能力的网站,丰富它的支付渠道对于获客和提高日活都 有不可估量的积极作用.算起来,我接触过的支付系统也有几十个了,在这里总结一下我所接触过的支付系统对外接口的设计方案. 1. 支

mysql学习笔记(五)--- 字符串函数、日期时间函数

一.常见字符串函数: 1.CHAR_LENGTH  获取长度(字符为单位) 2.FORMAT  格式化 3.INSERT  替换的方式插入 4.INSTR  获取位置 5.LEFT/RIGHT  取左.取右 6.LENGTH   获取长度(字节为单位) 7.LTRIM/RTRIM/TRIM 去空格(左/右/自定义) 8.STRCMP  字符串比较 9.CONCAT  字符串拼接 10.SUBSTRING  字符串截取 1.CHAR_LENGTH:获取长度(字符为单位) CHAR_LENGTH()

[Gradle] 在 Eclipse 下利用 gradle 构建系统

转载自:http://www.ibm.com/developerworks/cn/opensource/os-cn-gradle/ 构建系统时候常常要用到 Ant, Maven 等工具,对于初学者来说,它们还是过于复杂,上手还是需要时间的.本文将向读者介绍一种全新的构建项目的方式 gradle,它简单.上手快,能大大节省项目的时间和成本. 在 eclipse 下利用 gradle 构建系统 基本开发环境 操作系统:本教程使用的为 Windows Vista Enterprise, 如果您的系统是