php中global和$GLOBALS[]用法区别

 更新时间:2016年11月25日 15:06  点击:1844
php中global和$GLOBALS[]是比较常见全局变量了,下面我们给大家看一个简单的实例,来区别一下global和$GLOBALS[]用法吧。

根据官方的解释是 :

1.$GLOBALS['var']是外部的全局变量本身。

 代码如下 复制代码

<?php 
$var1 = 1; 
function test(){ 
     unset($GLOBALS['var1']); 

test(); 
echo $var1; 
?> 


2.global $var是外部$var的同名引用或者指针。

 

 代码如下 复制代码
$globalStr = '.com';
 
function globalTest(){
 
 global $globalStr;
 
 $globalStr = 'coderbolg'.$globalStr;
 
 unset($globalStr);
 
}
 
globalTest();
 
echo $globalStr; //输入: coderbolg.com
php mysql_escape_string与addslashes区别详解,大家可参考一下本文章。

mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。

下列字符受影响:

•x00
•n
•r

•'
•"
•x1a
如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。


addslashes() 函数在指定的预定义字符前添加反斜杠。

这些预定义字符是:

•单引号 (')
•双引号 (")
•反斜杠 ()
•NULL

区别总结
mysql_escape_string与addslashes的区别在于  
mysql_escape_string总是将“'”转换成“'”  

而addslashes  
在magic_quotes_sybase=on时将“'”转换成“''”  
在magic_quotes_sybase=off时将“'”转换成“'”

本文章介绍了关于PHP & HTML & JavaScript & MySQL 代码如何互相传值 ,有需要学习的朋友可参考一下

1.PHP

a.PHP -> HTML & JavaScript

额 超简单,我也要写= =~

html代码中

 代码如下 复制代码
<input type=""  readonly="readonly" style='background-color:#DCDCDC' value=<?php echo $perinfo[ID];?> />

   JavaScript代码中

 代码如下 复制代码
<script type="text/javascript">
var ability=<?php echo JSON($array);?>;
</script> 

 b.PHP  <-> MySQL


php代码中

 代码如下 复制代码


<?php
$dbcnx = @mysql_connect ( "localhost", "root", "1234" );
if (! $dbcnx) {
    echo ("Unable to connect to the " . "database server at this time.");
    exit ();
}

if (! @mysql_select_db ( "pms" )) {
    echo ("Unable to locate the joke " . "database at this time.");
    exit ();
}
mysql_query ( "SET NAMES 'GB2312'" );


    $q=mysql_query("select * from ability where ALV = 1");
    while($row=mysql_fetch_array($q)){
    $array1[] = $row[AName];
}
?>

2.HTML

a. HTML -> PHP (POST方式)

html代码中

 代码如下 复制代码
<form id="form" name="form" method="POST" action="do.php">
<input type="hidden" id="count" name="count" value="1"/>
<input type="submit" name="Submit" value="Search"/>
</form> 

 do.php 文件代码中

 代码如下 复制代码
<?php
echo $_POST['count'];
?> 

 b. HTML -> JavaScript


JavaScript代码中 (可获得,可更改)

 代码如下 复制代码

<script type="text/javascript">
var te = document.getElementById("count"); 
te.value = 1; 
</script>

3.JavaScript

a. JavaScript -> HTML (通用法, 未验证)

JavaScript代码中

 

 代码如下 复制代码
<script type="text/javascript">
function f(){
var id = "2";
var a = document.getElementById("a");
a.href.replace("(n)", id);
}
</script> 

 html代码

 代码如下 复制代码
<a id="a" href="ExportArticle.action?articles=(n)"/>  b. JavaScript ->

PHP

通过html的转接

1.JavaScript代码先给html

 代码如下 复制代码

<script type="text/javascript">
var i = 1;
var te = document.getElementById("count"); 
te.value = i; 
</script>  2.html代码给php

<form id="form" name="form" method="POST" action="do.php">
<input type="hidden" id="count" name="count" value="1"/>
<input type="submit" name="Submit" value="Search"/>
</form>  3.do.php接收到

<?php
echo $_POST['count'];
?>

本文章详细的介绍了关于php dirname、basename、pathinfo 解析目录路径,有需要学习的朋友可参考一下。

1:string basename(string path[,string suffix]);

给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以suffix结束的,那这一部分也会被去掉。

在Windows中,斜线(/)和反斜线()都可以用作路径分隔符。在其它环境下是斜线(/)。

例子1.basename()例子

 代码如下 复制代码

<?php

$path=网页制作教程http://www.111cn.net,请保留此标记"/home/httpd/html/index.php";

$file=basename($path);       //$fileissetto"index.php"

$file=basename($path,".php");//$fileissetto"index"

?>


2:string dirname(string path);

参数是是一个文件路径的字符串,返回去掉文件名后的目录
__FILE__的路径是当前代码所在文件
 
dirname(dirname(__FILE__));得到的是文件上一层目录名
dirname(__FILE__);得到的是文件所在层目录名

例子

 代码如下 复制代码

<?php
echo dirname("c:/testweb/home.php");
echo dirname("/testweb/home.php");
?>输出:

c:/testweb
/testweb

3:array pathinfo($path);

参数是一个文件路径的字符串,返回一个包含目录名、文件名和扩展名三个部分的数组,分别通过dirname、basename、extension来引用

例子 1

 代码如下 复制代码
<?php
print_r(pathinfo("/testweb/test.txt"));
?>

输出:

 代码如下 复制代码
Array
(
[dirname] => /testweb
[basename] => test.txt
[extension] => txt
)

例子 2

 代码如下 复制代码
<?php
print_r(pathinfo("/testweb/test.txt",PATHINFO_BASENAME));
?>

输出:

 代码如下 复制代码

test.txt

$_FILES: 经由 HTTP POST 文件上传而提交至脚本的变量,类似于旧数组 $HTTP_POST_FILES 数组(依然有效,但反对使用)详细信息可参阅 POST 方法上传

$_FILES数组内容如下:

$_FILES['myFile']['name'] 客户端文件的原名称        

$_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"        

$_FILES['myFile']['size'] 已上传文件的大小,单位为字节        

$_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认,可以在php.ini的upload_tmp_dir 指定,但用 putenv() 函数设置是不起作用的      

$_FILES['myFile']['error'] 和该文件上传相关的错误代码,['error'] 是在 PHP 4.2.0 版本中增加的,下面是它的说明:(它们在PHP3.0以后成了常量)

    UPLOAD_ERR_OK 值:0; 没有错误发生,文件上传成功


    UPLOAD_ERR_INI_SIZE 值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值            

    UPLOAD_ERR_FORM_SIZE 值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值        

    UPLOAD_ERR_PARTIAL 值:3; 文件只有部分被上传                  

    UPLOAD_ERR_NO_FILE 值:4; 没有文件被上传, 值:5; 上传文件大小为0                      

注:

1. 文件被上传结束后,默认地被存储在了临时目录中,这时必须将它从临时目录中删除或移动到其它地方,如果没有,则会被删除。也就是不管是否上传成功,脚本执行完后临时目录里的文件肯定会被删除。所以在删除之前要用PHP的 copy() 函数将它复制到其它位置,此时,才算完成了上传文件过程。

2. 在 PHP 4.1.0 版本以前该数组的名称为 $HTTP_POST_FILES,它并不像 $_FILES 一样是自动全局变量。PHP 3 不支持 $HTTP_POST_FILES 数组。


3. 用form上传文件时,一定要加上属性内容 enctype="multipart/form-data",否则用$_FILES[filename]获取文件信息时会报异常。


测试

 代码如下 复制代码

<html>
<body>

<form action="upload_file.php教程" method="post"
enctype="multipart/form-data">
<label for="file">filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="submit" />
</form>

</body>
</html>

php代码

 代码如下 复制代码

<?php

if ((($_files["file"]["type"] == "image/gif")
|| ($_files["file"]["type"] == "image/jpeg")
|| ($_files["file"]["type"] == "image/pjpeg"))
&& ($_files["file"]["size"] < 20000))
  {
  if ($_files["file"]["error"] > 0)
    {
    echo "error: " . $_files["file"]["error"] . "<br />";
    }
  else
    {
    echo "upload: " . $_files["file"]["name"] . "<br />";
    echo "type: " . $_files["file"]["type"] . "<br />";
    echo "size: " . ($_files["file"]["size"] / 1024) . " kb<br />";
    echo "stored in: " . $_files["file"]["tmp_name"];
    }
  }
else
  {
  echo "invalid file";
  }

?>

文件上传精简代码

 代码如下 复制代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Excel数据获取演示</title>
<meta name="Keywords" content="TODO" />
<meta name="Description" content="TODO"/>
</head>
<body>
    <div>
      <div>提交表单</div>
      <div>
        <form method="POST" action="www.111cn.net/Index/parse" enctype="multipart/form-data">
            <input type="file" name="excel" value="" />
            <input type="submit" name="submit" value="提交" />
        </form>
      </div>
    </div>
</body>
</html>

public function parse()
    {
       /**
        * $_FILES数组说明
        * array(n) {
        *   ["表单文件框名称"] => array(5) {
        *       ["name"]        => 提交文件名称
        *       ["type"]        => 提交文件类型 Excel为"application/vnd.ms-excel"
        *       ["tmp_name"]    => 临时文件名称
        *       ["error"]       => 错误(0成功1文件太大超过upload_max_filesize2文件太大超过MAX_FILE3上传不完整4没有上传文件)
        *       ["size"]        => 文件大小(单位:KB)
        *   }
        * }
        */
        $return=array(0,'');
        /**
         * 判断是否提交
         * is_uploaded_file(文件名称)用于确定指定的文件是否使用POST方法上传,防止非法提交,通常和move_upload_file一起使用保存上传文件到指定的路径
         */
        if(!isset($_FILES) || !is_uploaded_file($_FILES['excel']['tmp_name']))
        {
            $return=array(1,'提交不合法');
        }
        //处理
        if(0 == $return[0])
        {
            import('@.Util.ExcelParser');
            $excel=new ExcelParser($_FILES['excel']['tmp_name']);
            $return=$excel->main();
        }
        //输出处理
        print_r($return);
?>

更多详细内容请查看:http://www.111cn.net/phper/21/4662008ae09ff36c1a029763e9dcacf2.htm

[!--infotagslink--]

相关文章

  • mysql_connect与mysql_pconnect的区别详解

    在mysql中我们会看到有两种常用的数据库连接模式,一种是长久连接,另一各是页面访问完之后就断了连接,下面我来分别介绍mysql_connect与mysql_pconnect的区别,有需要了解...2016-11-25
  • C#中using的三种用法

    using 指令有两个用途: 允许在命名空间中使用类型,以便您不必限定在该命名空间中使用的类型。 为命名空间创建别名。 using 关键字还用来创建 using 语句 定义一个范围,将在此...2020-06-25
  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • index.php怎么打开?如何打开index.php?

    index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
  • C#中out与ref的区别实例解析

    这篇文章主要介绍了C#中out与ref的区别实例解析,对C#初学者有不错的学习借鉴价值,需要的朋友可以参考下...2020-06-25
  • PHP中func_get_args(),func_get_arg(),func_num_args()的区别

    复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04
  • 谈谈Jquery中的children find 的区别有哪些

    精华:find方法能找子孙,children方法只能找儿子一、Jquery中children 语法.children(selector) 说明expr是表达式,可选参数,所有选择器中的表达式都可以用在这,比如按标签名"div",按类名".class",按序号":first"等等,如果表...2015-10-21
  • PHP编程 SSO详细介绍及简单实例

    这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
  • PHP实现创建以太坊钱包转账等功能

    这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
  • iscroll.js 用法介绍

    最新版下载: http://www.csdn123.com/uploadfile/2015/0428/20150428062734485.zip 概要 iScroll 4 这个版本完全重写了iScroll这个框架的原始代码。这个项目的产生...2016-05-19
  • PS中像素大小、文档大小的区别

    在PS中像素大小、文档大小有什么区别呢,这个估计很多初学者不清楚,下面我来给大家讲解一下,希望对你有帮助。 1、像素大小 通常用于显示屏显示的图片大小的调整。菜...2016-09-14
  • C#中的try catch finally用法分析

    这篇文章主要介绍了C#中的try catch finally用法,以实例形式分析了try catch finally针对错误处理时的不同用法,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • C++中cin的用法详细

    这篇文章主要介绍了C++中cin的用法详细,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
  • php微信公众账号开发之五个坑(二)

    这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
  • ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单

    首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31
  • PHP如何通过date() 函数格式化显示时间

    这篇文章主要介绍了PHP如何通过date() 函数格式化显示时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-13
  • PHP+jQuery+Ajax实现多图片上传效果

    今天我给大家分享的是在不刷新页面的前提下,使用PHP+jQuery+Ajax实现多图片上传的效果。用户只需要点击选择要上传的图片,然后图片自动上传到服务器上并展示在页面上。...2015-03-15
  • golang与php实现计算两个经纬度之间距离的方法

    这篇文章主要介绍了golang与php实现计算两个经纬度之间距离的方法,结合实例形式对比分析了Go语言与php进行经纬度计算的相关数学运算技巧,需要的朋友可以参考下...2016-07-29
  • C#中sleep和wait的区别分析

    这篇文章主要介绍了C#中sleep和wait的区别分析,有助于深入理解C#中线程的原理与使用技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25