php最全基础,数组,函数,超全局变量,时间,回话,文件,php操作mysql

共享一份学习php最全基础语法知识的笔记

原文链接:http://www.cnblogs.com/oscn/p/3607757.html;略有修改

     http://www.cnblogs.com/ljab/p/6125995.html略有修改

1.判断php短标记<??>是否适用,查看php配置文件php.ini中的"short_open_tag = On"
2.官方的标记<?php?>  , <script language="php"></script>
3.单行注释 //或者#  
 /*
  多行注释
 */
4.变量  $str   字母数字下划线 ,数字不能作为开头,大小写敏感,尽量用有意义的英文。
5.注销变量函数 unset($str)  检查变量是否被定义 isset($str)
6.可变变量
$a = ‘ok‘;
$ok = 123;

echo $$a; //可变变量 输出123
7.  连接符.
$str = ‘world‘;
echo ‘hello‘.$str;
8.转义字符 \
$str="a‘b\"c";
9.数组
$arr = array(34,6,9=>7,‘abc‘,‘name‘=>‘付潭‘);

print_r( $arr );   //print_r() 用于输出数组,而不是用echo
输出结果:
Array ( [0] => 34 [1] => 6 [9] => 7 [10] => abc [name] => 付潭 )

10.数字
$str = 1; 
echo ‘asd‘+1;   // 1
echo ‘1‘+1;    //2

11.单引号 与 双引号的区别
$str = ‘你好‘;  
echo ‘$str‘;        //$str
echo ‘<br />‘;
echo "$str";        //你好  双引号 可以解析变量以及特殊字符"\n","\t"等等

$str1 = ‘你好\n是我‘;
$str2 = "你好\n是我";         // "\n" 属于特殊字符(换行),因此双引号可以解析
$str3 = "你好\t是我";
echo $str1;
echo $str2;
echo $str3;

字符串中没有变量的时候 ,尽量使用单引号。
有变量的时候使用双引号。
$s = ‘nihao‘;
echo $s.‘某某‘;
echo "{$s} 某某";
"贪婪模式" 解析变量直到不符合命名规则的字符
\ 转义字符 将变量转成普通的字符串

$ok = ‘你好‘;
echo "$okk";        //输出为空,贪婪模式
echo "{$ok}k";        //输出“你好k”
echo "$ok k";        //输出“你好 k”
echo "\$ok k";        //输出“$ok k”,转义字符
echo "$ok‘k";        //输出“你好‘k”
echo $ok."k";        //输出“你好k”

变量可以包含中文

12.自定义字符串
echo ‘<img src="images/tupian.jpg" width=\‘200\‘ />‘;
$str = "tupian.jpg";
echo ‘<img src="images/‘.$str.‘" width=\‘200\‘ />‘
//自定义字符串,标准格式
echo <<< ABC
    <img src="images/$str" width=‘200‘ />            //中间当做 HTML区域 ,变量可以直接写  
ABC;
第一行要顶格写
第一行要独占一行,后面不能跟任何东西(包括注释和空格)
最好一行也要顶格和独占一行

13.错误输出
error_reporting(E_ALL | ERROR | PARSE | WARNING | NOTICE );

//在网页中加入报错程序代码

14.常量与变量
a.常量一般用大写,变量一般用小写。
b.常量一般不加$,而变量一定要加$。
c.常量在函数内部直接就有效,不需要声明为全局变量。
同一个常量不能声明两次

15.变量的作用域
函数内部与外部没有联系。

$str = 12;

function test()
{    
    //声明全局变量,必须写在函数内部,外面是没有用的,而且是一次性有效。
    global $str;
    echo $str;
    $str = 11;
}
test();   //12

function test2()
{
    echo $str;
}
echo $str; //11

test2(); //不输出

声明静态变量
function test()

{
    static $a=0;    //声明为 静态变量 ,只在函数中运行一次,局部变量,只在函数内部有效
    echo $a;    
    $a++;
}
test();        //0

test();        //1

test();        //2

echo $a;    //输出空

16.连接符.
echo ‘12‘ , $str , ‘23‘;  //在echo中 ,","要比"."更有效率,echo是唯一可以用逗号当做连接符的

17.输出
$a = array(2,57,8,9);
echo $a;        //Array,可以同时输出多个字符串
print $a;          //Array,只能输出一个字符串
print_r($a);        //Array ( [0] => 2 [1] => 57 [2] => 8 [3] => 9 )

18.引用
@ include(‘../inc/header.php‘);        //继续运行,警告,@号不提示报错,
require(‘header.php‘);            //终止程序,报错
header.php直接复制需要引用的代码,文件中不需要再写头部声明文件等。
被引用的文件作用域相通,可以直接引用里面声明的变量。

19.变量可以定义两次(后者覆盖前者),而函数不能。
要注意引用的文件include(‘yinyong.php‘)/require(‘yinyong.php‘);不能与现有的函数有相同的。
php5中,两个引用语句如果引用相同文件,会默认为一个。但是为保证兼容,不能写重复。

20.include_once(‘header.php‘);/require_once(‘footer.php‘);只包含一次,会自动判断有没有引用相同的文件。但影响执行效率。

21.__FILE__,内置常量
echo __FILE__;            //输出文件的物理地址,F:\php\www\php_basic.php 只认代码写入的页面,不管是否被引用。
echo dirname(__FILE__);        //输出文件目录,不包括文件名,F:\php\www
include( dirname(__FILE__).‘/../php_basic.php‘);    // 利用dirname()输出文件地址,‘/../php_basic.php‘则代表当前目录的上一级目录中的php_basic.php文件。这是用的是正斜杠“/”,而不是因为地址栏上显示的反斜杠“\”,因为只有windows可以识别,正斜杠可以兼容windows和linux系统。

如果文件被其他文件引用,include和require语句就必须写成这种形式。

“../”适合于简单的一个文件包含于另一个文件。
而dirname(__FILE__) 大多适合多层,更复杂多多文件包含,维护起来更容易。

如果仅仅是a.php文件包含b.php文件,可以直接用 include的dirname(__FILE__)或者   “../”  均可,一般不会出错的。
但往往是 a包含了 b文件,另外c.php包含了a文件
那么使用  “../”  的话,就会造成c包含a时再载入b文件时路径出错,而使用dirname(__FILE__)时,c包含a时会以dirname(__FILE__)映射出c和a的路径关系,a再到包含b文件时,使用dirname(__FILE__),会映射出a和b的相应目录关系。这个就不会造成不同目录多次包含时路径出错!

注意: __FILE__,代表 这个代码所在文件的文件名, 比如 c用dirname(__FILE__)包含a(此时就是c引用a时使用的是绝对路径),那么 __FILE__代码是c文件的绝对路径名,而c包含a后,a再用dirname(__FILE__)包含b时,那么__FILE__在执行时就是a文件的绝对路径名,这个依次类推,当c在调用时,通过绝对路径找到a文件,a 文件又通过绝对路径找到b。这样的包含及路径永远也不会出错!

如果只是使用“../”  的话,c在调用时通过相对路径找到a,这里没有错,但是此时a里面包含b的也是使用“../”,此时是相对于c 的相对路径查找b,当然是错的!

  前面两篇有关于 php基础知识笔记的文章都没有介绍一下PHP的环境配置,下面就把相关的配置教程贴出来,解释一下:我用的是APM Serv,至于下载地址就不贴了,问度娘吧。。

PHP环境配置:

1.查找占用80端口的程序 ,解除占用以启动APMServ。
window+R 快捷键打开命令运行窗口— cmd命令 — 运行‘netstat -oan’ —查找占用80端口的程序的PID — 打开任务管理器 — 选择查看 — ‘选择列’ — 选择PID —在进程中查找对应的PID中止程序。(附件—命令提示符—netstat -abno)

2.设置虚拟主机—新建主机域名—网站根目录填入网站文件存放的位置—读写限制解除—重启Apache—修改hosts文件—另起新的一行,将新建的主机域名写在里面。—打开新建的主机域名后,网页会自动打开名字为index的网页文件作为主页。

3.在DW中新建站点—选择“服务器”—修改名称—连接方法选本地—文件夹选择网站根目录—WebURL选择新建的虚拟主机域名。—取消“远程”选项,勾选“测试”选项。

4.新建phpinfo.php文件—测试环境的运行情况:phpinfo()。

PHP超全局变量:

PHP有九个超全局变量:

Note: 变量可用性
默认情况下,所有的超全局变量都是可用的。但是,有一些指令会影响这种可用性。更多信息,参见文档 variables_order.

Note: 处理 register_globals
如果已经弃用的 register_globals 指令被设置为 on 那么局部变量也将在脚本的全局作用域中可用。例如, $_POST[‘foo‘] 也将以 $foo 的形式存在。

相关信息,参见 FAQ “register_globals 对我有什么影响?”

Note: 可变变量
在函数或类方法中,超全局变量不能被用作可变变量。

$GLOBALS

$GLOBALS — 引用全局作用域中可用的全部变量

说明

一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

范例

Example #1 $GLOBALS 范例

<?php
function test() {
    $foo = "local variable";

echo ‘$foo in global scope: ‘ . $GLOBALS["foo"] . "\n";
    echo ‘$foo in current scope: ‘ . $foo . "\n";
}

$foo = "Example content";
test();
?>

以上例程的输出类似于:

$foo in global scope: Example content
$foo in current scope: local variable

注释

Note:

“Superglobal”也称为自动化的全局变量。 这就表示其在脚本的所有作用域中都是可用的。不需要在函数或方法中用 global $variable; 来访问它。

Note变量可用性

与所有其他超全局变量不同,$GLOBALS在PHP中总是可用的。

$_SERVER

说明

$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。这也就意味着大量的此类变量都会在? CGI 1.1 规范中说明,所以应该仔细研究一下。

$_SERVER[‘PHP_SELF‘]:当前正在执行脚本的文件名,与 document root 相关。举例来说,在 URL 地址为http://www.cnblogs.com/futan/archive/2012/12/18/php_admin-group-power.html 的脚本中使用 $_SERVER[‘PHP_SELF‘] 将会得到 futan/archive/2012/12/18/php_admin-group-power.html 这个结果。__FILE__ 常量包含当前(例如包含)文件的绝对路径和文件名。

$_GET

说明

通过 URL 参数传递给当前脚本的变量的数组。

范例

Example #1 $_GET 范例

<?php
echo ‘Hello ‘ . htmlspecialchars($_GET["name"]) . ‘!‘;
?>

假设用户访问的是 http://example.com/?name=Hannes

以上例程的输出类似于:

Hello Hannes!

Note:

GET 是通过 urldecode() 传递的。

$_POST

$_POST 变量用于收集来自 method="post" 的表单中的值。从带有 POST 方法的表单发送的信息,对任何人都是不可见的(会显示在浏览器的地址栏),并且对发送信息的量也没有限制。

范例

Example #1 $_POST 范例

<?php
echo ‘Hello ‘ . htmlspecialchars($_POST["name"]) . ‘!‘;
?>

假设用户通过 HTTP POST 方式传递了参数 name=Hannes

以上例程的输出类似于:

Hello Hannes!

$_REQUEST

使用$_GET和$_POST接收传递来的数据有一个问题,就是程序必须知道上传来的数据具体使用哪种方法。但实际上,无论是哪种方法,都是传递数据给 WEB应用程序,它们的目的是一样的。$_REQUEST数组屏蔽了这些细节,它封装了$_GET、$_POST、$_FILE和$_COOKIE四个数组的内容,使我们对这些数据可以一视同仁。事实上,在JSP中,GET和POST的变量就是统一使用request.getParameter()方法来接收,只不过PHP中的$_REQUEST数组又封装了Cookie的内容

Note:

以命令行方式运行时,将不包含 argv 和 argc 信息;它们将存在于 $_SERVER 数组。

Note:

由于 $_REQUEST 中的变量通过 GET,POST 和 COOKIE 输入机制传递给脚本文件,因此可以被远程用户篡改而并不可信。这个数组的项目及其顺序依赖于 PHP 的 variables_order 指令的配置。

这里有必要给$_GET和$_POST以及$_REQUEST这三个数组做一个辨析:

  • get是从服务器上获取数据,post是向服务器传送数据。
  • get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
  • 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
  • get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
  • get安全性非常低,post安全性较高。但是执行效率却比Post方法好。
  • $_REQUEST[]具用$_POST[] $_GET[]的功能,但是$_REQUEST[]比较慢。通过POST和GET方法提交的所有数据都可以通过$_REQUEST数组获得

注意:GET方法和POST方法并不矛盾,在POST方法中同样可以传递GET变量,将上面的post.php文件稍微改动一下,就成了这样:

<!– post.php文件 –>
<?php
if($_POST[‘post‘]) {
foreach($_POST as $index = > $value) echo “$_POST[$index] = $value”, “<BR>”;
foreach($_GET as $index = > $value) echo “$_GET[$index] = $value”, “<BR>”;
}
?>
<form action=”post.php?act=login” method=”post”>
<label for=”id”>帐号:</label><input type=”text” name=”id”>
<label for=”password”>密码:</label><input type=”text” name=”password”>
<input type=”submit” name=”post” value=”提交”>
</form>

该程序同时处理了GET方法(act 参数)和POST方法(id 和 password 参数)的请求数据,GET方法的请求变量后缀在了表单action属性值的后面,这样只有一点问题,就是GET方法的请求变量不能由用户来输入。通常,固定的数据使用GET方法,由用户输入的数据使用POST方法来发送,两种方法区分开了不同逻辑的数据。不过读者在构建这种表单的时候,一定要注意两种方法不要有相同的变量名,否则将出现不可预料的后果。最后,需要注意的是,当使用GET方法发送数据时,则 <form>标签 action 属性值中不能包含查询字符串(即使包含也不会生效),所以,下面的表单中,act 参数将不能发送:

<form action=”post.php?act=login” method=”get”>
<label for=”id”>账号:</label><input type=”text” name=”id”>
<label for=”password”>密码:</label><input type=”text” name=”password”>
<input type=”submit” name=”post” value=”提交”>
</form>

应该改成下面的形式:

<form action=”post.php” method=”get”>
<label for=”id”>账号:</label><input type=”text” name=”id”>
<label for=”password”>密码:</label><input type=”text” name=”password”>
<input type=”submit” name=”post” value=”提交”>
<input type=”hidden” name=”act” value=”login”>
</form>

建议

  • get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;
  • 在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;
  • ATTENTION:慎用$_REQUEST 如果get的一个变量名称和post的一个变量名称相同,则POST的值会覆盖GET的变量值,因为REQUEST先获取了get的值,然后获取了post的值,post的值会覆盖get值。
  • 使用$_REQUEST数组是一定要注意,几种数据中的变量名不要冲突,尤其要注意的是$_COOKIE,它的数据不使用过客户端来设置的。

我们可以来看php.ini中的配置 ; This directive describes the order in which PHP registers GET, POST, Cookie,; Environment and Built-in variables (G, P, C, E & S respectively, often; referred to as EGPCS or GPC). Registration is done from left to right, newer; values override older values.variables_order = "EGPCS"

这个EGPCS就是说明用$_REQUEST数组获取内容的优先级,其字母的含义分别代表为:E代表$_ENV,G代表$_GET,P代表$_POST,C代表$_COOKIE,S代表$_SESSION。后面出现的数据会覆盖前面写入的数据,其默认的数据写入方式就是EGPCS,所以POST包含的数据将覆盖GET中使用相同关键字的数据。通过这个我们也可以看出PHP获取参数的步骤 环境变量=》GET=》POST=》COOKIE=>SESSION

$_SESSION

Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。从上述的定义中我们可以看到,Session实际上是一个特定的时间概念。 一般来说,在网站上某一个页面中的变量(指服务器端变量,下同)是不能在下一页中用的,有了session就好办了。session中注册的变量可以作为全局变量使用。这样我们就可以将session用于用户身份认证,程序状态记录,页面之间参数传递。

当前脚本可用 SESSION 变量的数组。更多关于如何使用的信息,参见 Session 函数 文档。

$_ENV

php中的$_ENV存储了一些系统的环境变量,因环境不同而值不同. 
但有时候$_ENV是空的,可能有以下原因: 
在 php.ini中的variables_order值为"GPCS",也就是说系统在定义PHP预定义变量时的顺序是 GET,POST,COOKIES,SERVER,没有定义Environment(E),你可以修改php.ini文件的variables_order值为你想要的顺序,如:"EGPCS"。这时,$_ENV的值就可以取得了. 
EGPCS值: (EGPCS是Environment、Get、Post、Cookies、Server的缩写 -- 这是PHP中外部变量来源的全部范围).

你可以用foreach来遍历$_ENV的数据,也可以直接用print_r($_ENV)来打印这个变量,查看他的数据.

$_COOKIE

$_cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制。 PHP在http协议的头信息里发送cookie, 因此 setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对 header() 函数的限制类似。

PHP中的$_COOKIE和$_SESSION使用技巧

1.1 设置cookie: 
    可以用 setcookie() 或 setrawcookie() 函数来设置 cookie。也可以通过向客户端直接发送http头来设置. 
1.1.1 使用setcookie()函数设置cookie: 
bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure [, bool httponly]]]]]] ) 
     name:   cookie变量名 
     value:   cookie变量的值 
     expire:  有效期结束的时间, 
     path:    有效目录, 
     domain: 有效域名,顶级域唯一 
     secure:  如果值为1,则cookie只能在https连接上有效,如果为默认值0,则http和https都可以. 
例子: 
Php代码  
<?php   
$value = ‘something from somewhere‘;   
  
setcookie("TestCookie", $value); /* 简单cookie设置 */  
setcookie("TestCookie", $value, time()+3600); /* 有效期1个小时 */  
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example.com", 1); /* 有效目录 /~rasmus,有效域名example.com及其所有子域名 */  
?>

<?php
$value = ‘something from somewhere‘;

setcookie("TestCookie", $value); /* 简单cookie设置 */
setcookie("TestCookie", $value, time()+3600); /* 有效期1个小时 */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example.com", 1); /* 有效目录 /~rasmus,有效域名example.com及其所有子域名 */
?>

设置多个cookie变量: setcookie(‘var[a]‘,‘value‘);用数组来表示变量,但他的下标不用引号.这样就可以用$_COOKIE[‘var’][‘a’]来读取该COOKIE变量.

1.1.2. 使用header()设置cookie; 
header("Set-Cookie: name=$value[;path=$path[;domain=xxx.com[;...]]"); 
后面的参数和上面列出setcookie函数的参数一样. 
比如:

$value = ‘something from somewhere‘; 
header("Set-Cookie:name=$value");

1.2 Cookie的读取:

直接用php内置超级全局变量 $_COOKIE就可以读取浏览器端的cookie. 
上面例子中设置了cookie"TestCookie",现在我们来读取:

print $_COOKIE[‘TestCookie‘];

COOKIE是不是被输出了?!

1.3 删除cookie 
只需把有效时间设为小于当前时间, 和把值设置为空.例如: 
setcookie("name","",time()-1); 
用header()类似.

1.4 常见问题解决:

1) 用setcookie()时有错误提示,可能是因为调用setcookie()前面有输出或空格.也可能你的文档使从其他字符集转换过来,文档后面可能带有BOM签名(就是在文件内容添加一些隐藏的BOM字符).解决的办法就是使你的文档不出现这种情况.还有通过使用ob_start()函数有也能处理一点. 
2) $_COOKIE受magic_quotes_gpc影响,可能自动转义 
3) 使用的时候,有必要测试用户是否支持cookie 
<!--[if !supportLineBreakNewLine]-->

1.5 cookie工作机理:

a) 服务器通过随着响应发送一个http的Set-Cookie头,在客户机中设置一个cookie(多个cookie要多个头). 
b) 客户端自动向服务器端发送一个http的cookie头,服务器接收读取.

HTTP/1.x 200 OK 
X-Powered-By: PHP/5.2.1 
Set-Cookie: TestCookie=something from somewhere; path=/ 
Expires: Thu, 19 Nov 2007 18:52:00 GMT 
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
Pragma: no-cache 
Content-type: text/html

这一行实现了cookie功能,收到这行后 
Set-Cookie: TestCookie=something from somewhere; path=/ 
浏览器将在客户端的磁盘上创建一个cookie文件,并在里面写入:

TestCookie=something from somewhere; 
/

这一行就是我们用setcookie(‘TestCookie‘,‘something from somewhere‘,‘/‘);的结果.也就是用header(‘Set-Cookie: TestCookie=something from somewhere; path=/‘);的结果. 
<!--[endif]-->

PHP 的Session的使用方法以及安全问题和session的注意事项,session使用过期时间设为0的cookie,并且将一个称为session ID的唯一标识符(一长串字符串),在服务器端同步生成一些session文件(可以自己定义session的保存类型),与用户机关联起来.web应用程序存贮与这些session相关的数据,并且让数据随着用户在页面之间传递.

访问网站的来客会被分配一个唯一的标识符,即所谓的会话 ID。它要么存放在客户端的 cookie,要么经由 URL 传递。

会话支持允许用户注册任意数目的变量并保留给各个请求使用。当来客访问网站时,PHP 会自动(如果 session.auto_start 被设为 1)或在用户请求时(由 session_start() 明确调用或 session_register() 暗中调用)检查请求中是否发送了特定的会话 ID。如果是,则之前保存的环境就被重建。

2.1 sessionID的传送

2.1.1 通过cookie传送sessin ID

使用session_start()调用session,服务器端在生成session文件的同时,生成session ID哈希值和默认值为PHPSESSID的session name,并向客户端发送变量为(默认的是)PHPSESSID(session name),值为一个128位的哈希值.服务器端将通过该cookie与客户端进行交互. 
   session变量的值经php内部系列化后保存在服务器机器上的文本文件中,和客户端的变量名默认情况下为PHPSESSID的coolie进行对应交互. 
     即服务器自动发送了http头:header(‘Set-Cookie: session_name()=session_id(); path=/‘); 
即setcookie(session_name(),session_id()); 
    当从该页跳转到的新页面并调用session_start()后,PHP将检查与给定ID相关联的服务器端存贮的session数据,如果没找到,则新建一个数据集.

2.1.2 通过URL传送session ID 
只有在用户禁止使用cookie的时候才用这种方法,因为浏览器cookie已经通用,为安全起见,可不用该方法. 
<a href="p.php?<?php print session_name() ?>=<?php print session_id() ?>">xxx</a>,也可以通过POST来传递session值.

2.2 session基本用法实例

Php代码  
<?php   
// page1.php   
session_start();   
echo ‘Welcome to page #1‘;   
/* 创建session变量并给session变量赋值 */  
$_SESSION[‘favcolor‘] = ‘green‘;   
$_SESSION[‘animal‘] = ‘cat‘;   
$_SESSION[‘time‘] = time();   
  
// 如果客户端使用cookie,可直接传递session到page2.php   
echo ‘<br /><a href="page2.php">page 2</a>‘;   
  
// 如果客户端禁用cookie   
echo ‘<br /><a href="page2.php?‘ . SID . ‘">page 2</a>‘;   
/*  
 默认php5.2.1下,SID只有在cookie被写入的同时才会有值,如果该session  
 对应的cookie已经存在,那么SID将为(未定义)空  
 */  
?>   
  
<?php   
// page2.php   
session_start();   
print $_SESSION[‘animal‘]; // 打印出单个session   
var_dump($_SESSION); // 打印出page1.php传过来的session值   
?>

<?php
// page1.php
session_start();
echo ‘Welcome to page #1‘;
/* 创建session变量并给session变量赋值 */
$_SESSION[‘favcolor‘] = ‘green‘;
$_SESSION[‘animal‘] = ‘cat‘;
$_SESSION[‘time‘] = time();

// 如果客户端使用cookie,可直接传递session到page2.php
echo ‘<br /><a href="page2.php">page 2</a>‘;

// 如果客户端禁用cookie
echo ‘<br /><a href="page2.php?‘ . SID . ‘">page 2</a>‘;
/*
 默认php5.2.1下,SID只有在cookie被写入的同时才会有值,如果该session
 对应的cookie已经存在,那么SID将为(未定义)空
 */
?>

<?php
// page2.php
session_start();
print $_SESSION[‘animal‘]; // 打印出单个session
var_dump($_SESSION); // 打印出page1.php传过来的session值
?>

2.3 使用session函数控制页面缓存. 
    很多情况下,我们要确定我们的网页是否在客户端缓存,或要设置缓存的有效时间,比如我们的网页上有些敏感内容并且要登录才能查看,如果缓存到本地了,可以直接打开本地的缓存就可以不登录而浏览到网页了.

使用session_cache_limiter(‘private‘);可以控制页面客户端缓存,必须在session_start()之前调用. 
更多参数见http://blog.chinaunix.net/u/27731/showart.php?id=258087的客户端缓存控制.

控制客户端缓存时间用 session_cache_expire(int);单位(s).也要在session_start()前调用.

这只是使用session的情况下控制缓存的方法,我们还可以在header()中控制控制页面的缓存.

2.4 删除session

要三步实现. 
Php代码  
<?php   
session_destroy();                                      // 第一步: 删除服务器端session文件,这使用   
setcookie(session_name(),‘‘,time()-3600);  // 第二步: 删除实际的session:   
$_SESSION = array();                                  // 第三步: 删除$_SESSION全局变量数组   
?>

<?php
session_destroy();                                      // 第一步: 删除服务器端session文件,这使用
setcookie(session_name(),‘‘,time()-3600);  // 第二步: 删除实际的session:
$_SESSION = array();                                  // 第三步: 删除$_SESSION全局变量数组
?>

2.5 session在PHP大型web应用中的使用

对于访问量大的站点,用默认的session存贮方式并不适合,目前最优的方法是用数据库存取session.这时,函数bool session_set_save_handler ( callback open, callback close, callback read, callback write, callback destroy, callback gc )就是提供给我们解决这个问题的方案. 
该函数使用的6个函数如下:

1.   bool open() 用来打开会话存储机制,

2.   bool close() 关闭会话存储操作.

3.   mixde read() 从存储中装在session数据时使用这个函数

4.   bool write() 将给定session ID的所有数据写到存储中

5.   bool destroy() 破坏与指定的会话ID相关联的数据

6.   bool gc()  对存储系统中的数据进行垃圾收集

例子见php手册session_set_save_handler() 函数. 
如果用类来处理,用 
session_set_save_handler( 
    array(‘className‘,‘open‘), 
    array(‘className‘,‘close‘), 
    array(‘className‘,‘read‘), 
    array(‘className‘,‘write‘), 
    array(‘className‘,‘destroy‘), 
    array(‘className‘,‘gc‘), 

调用className类中的6个静态方法.className可以换对象就不用调用静态方法,但是用静态成员不用生成对象,性能更好.

2.6 常用session函数:

bool   session_start(void); 初始化session 
bool   session_destroy(void): 删除服务器端session关联文件。 
string session_id() 当前session的id 
string session_name() 当前存取的session名称,也就是客户端保存session ID的cookie名称.默认PHPSESSID。 
array  session_get_cookie_params() 与这个session相关联的session的细节. 
string session_cache_limiter() 控制使用session的页面的客户端缓存 
ini    session_cache_expire() 控制客户端缓存时间 
bool   session_destroy()     删除服务器端保存session信息的文件 
void   session_set_cookie_params ( int lifetime [, string path [, string domain [, bool secure [, bool httponly]]]] )设置与这个session相关联的session的细节 
bool   session_set_save_handler ( callback open, callback close, callback read, callback write, callback destroy, callback gc )定义处理session的函数,(不是使用默认的方式) 
bool   session_regenerate_id([bool delete_old_session]) 分配新的session id

2.7 session安全问题 
攻击者通过投入很大的精力尝试获得现有用户的有效会话ID,有了会话id,他们就有可能能够在系统中拥有与此用户相同的能力. 
因此,我们主要解决的思路是效验session ID的有效性. 
Php代码  
<?php   
if(!isset($_SESSION[‘user_agent‘])){   
    $_SESSION[‘user_agent‘] = $_SERVER[‘REMOTE_ADDR‘].$_SERVER[‘HTTP_USER_AGENT‘];   
}   
  
/* 如果用户session ID是伪造 */  
elseif ($_SESSION[‘user_agent‘] != $_SERVER[‘REMOTE_ADDR‘] . $_SERVER[‘HTTP_USER_AGENT‘]) {   
    session_regenerate_id();   
}   
?>

<?php
if(!isset($_SESSION[‘user_agent‘])){
    $_SESSION[‘user_agent‘] = $_SERVER[‘REMOTE_ADDR‘].$_SERVER[‘HTTP_USER_AGENT‘];
}

/* 如果用户session ID是伪造 */
elseif ($_SESSION[‘user_agent‘] != $_SERVER[‘REMOTE_ADDR‘] . $_SERVER[‘HTTP_USER_AGENT‘]) {
    session_regenerate_id();
}
?>

2.8 Session通过cookie传递和通过SID传递的不同: 
在php5.2.1的session的默认配置的情况下,当生成session的同时,服务器端将在发送header set-cookie同时生成预定义超级全局变量SID(也就是说,写入cookie和抛出SID是等价的.), 当$_COOKIE[‘PHPSESSID‘]存在以后,将不再写入cookie,也不再生成超级全局变量SID,此时,SID将是空的.

2.9 session使用实例 
Php代码  
<?php   
/**  
 * 效验session的合法性  
 *  
 */  
function sessionVerify() {   
    if(!isset($_SESSION[‘user_agent‘])){   
        $_SESSION[‘user_agent‘] = MD5($_SERVER[‘REMOTE_ADDR‘]   
        .$_SERVER[‘HTTP_USER_AGENT‘]);   
    }   
    /* 如果用户session ID是伪造,则重新分配session ID */  
    elseif ($_SESSION[‘user_agent‘] != MD5($_SERVER[‘REMOTE_ADDR‘]   
    . $_SERVER[‘HTTP_USER_AGENT‘])) {   
        session_regenerate_id();   
    }   
}   
  
/**  
 * 销毁session  
 * 三步完美实现,不可漏  
 *  
 */  
function sessionDestroy() {   
    session_destroy();   
    setcookie(session_name(),‘‘,time()-3600);   
    $_SESSION = array();   
}   
?>

<?php
/**
 * 效验session的合法性
 *
 */
function sessionVerify() {
    if(!isset($_SESSION[‘user_agent‘])){
        $_SESSION[‘user_agent‘] = MD5($_SERVER[‘REMOTE_ADDR‘]
        .$_SERVER[‘HTTP_USER_AGENT‘]);
    }
    /* 如果用户session ID是伪造,则重新分配session ID */
    elseif ($_SESSION[‘user_agent‘] != MD5($_SERVER[‘REMOTE_ADDR‘]
    . $_SERVER[‘HTTP_USER_AGENT‘])) {
        session_regenerate_id();
    }
}

/**
 * 销毁session
 * 三步完美实现,不可漏
 *
 */
function sessionDestroy() {
    session_destroy();
    setcookie(session_name(),‘‘,time()-3600);
    $_SESSION = array();
}
?>
注明: 
    session 出现头信息已经发出的原因与cookie一样. 
    在php5中,所有php session 的注册表配置选项都是编程时可配置的,一般情况下,我们是不用修改其配置的.要了解php的session注册表配置选项,请参考手册的Session 会话处理函数处. 
    session的保存数据的时候,是通过系列化$_SESSION数组来存贮,所以有系列化所拥有的问题,可能有特殊字符的值要用base64_encode函数编码,读取的时候再用base64_decode解码。

PHP常用内置常量:

名称 说明
__LINE__ 文件中的当前行号。
__FILE__ 文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。
__FUNCTION__ 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
__CLASS__ 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
__METHOD__ 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。

PHP常用的内置常量,上标是五个魔术常量。下面还有:

DIRECTORY_SEPARATOR      路径分隔符,Win下是"/",而*inux/unix下是"\"。

PATH_SEPARATOR             多个路劲分隔符,比如使用include多个路劲时候,Win下用";",而*inux下为":"

E_ERROR            致命的运行时错误

E_WARNING                 运行时警告(非致命性错误)

E_PARSE                  编译时解析错误

E_NOTICE             运行时提醒(经常是bug,也可能是有意的)

E_ALL               除E_STRICT外的所有错误

时间

一、time() 来取得服务器当前时间的时间戳

  UNIX 时间戳(timestamp)是 PHP 中关于时间日期一个很重要的概念,它表示从 1970年1月1日 00:00:00 到当前时间的秒数之和。

  PHP提供了内置函数 time() 来取得服务器当前时间的时间戳。然后可以通过Data()等函数将它格式化为我们需要的时间日期格式。

  时间戳虽然看起来好像不太直观,但我们在对时间做计算时却很方便。

  有效的时间戳典型范围是格林威治时间 1901年12月13日 20:45:54 到 2038年1月19日 03:14:07(此范围符合 32 位有符号整数的最小值和最大值)。不过从 5.1.0 起,已经克服了年的范围只能是 1901 到 2038 之间的问题。

  提示

  1. time() 得到的总是当前的时间戳,所以是不固定的值
  2. 如果时间戳为负数,则为从1970年1月1日 00:00:00往前推

  $_SERVER[‘REQUEST_TIME‘] 是 PHP 内置的当前页面开始运行时的时间戳,在当前页面运行结束时将 time() - $_SERVER[‘REQUEST_TIME‘] 得到的就是当前页面运行的时间(秒):

二、Date() 函数

  语法 date(format,timestamp)

  format:必需。规定时间戳的格式。

  timestamp:可选。规定时间戳。默认是当前时间和日期。(给出一个时间,格式转换为规定的格式)

  注释:时间戳是一种字符序列,它表示具体事件发生的日期和事件。

  1)获得简单的日期

  date() 函数的格式参数是必需的,它们规定如何格式化日期或时间。

  下面列出了一些常用于日期的字符:

  

  其他字符,比如 "/", "." 或 "-" 也可被插入字符中,以增加其他格式。

  data(Y/m/d);//将当前日期转换为年/月/日格式eg:2016/01/07

  data("1");//eg:Friday 

  2)获得简单的时间

  下面是常用于时间的字符:

  • h - 带有首位零的 12 小时小时格式
  • i - 带有首位零的分钟
  • s - 带有首位零的秒(00 -59)
  • a - 小写的午前和午后(am 或 pm)

  3)获得时区

  如果从代码返回的不是正确的时间,有可能是因为您的服务器位于其他国家或者被设置为不同时区。

  因此,如果您需要基于具体位置的准确时间,您可以设置要用的时区

  date_default_timezone_set("Asia/Shanghai");

、mktime() 创建日期

  语法

 mktime(hour,minute,second,month,day,year)参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。eg:$myData = mktime(12,33,52,12,2,2016);data("Y/m/d h:i:s a",$myData);

mktime() 在做日期计算和验证方面很有用,它会自动计算超出范围的输入的正确值。例如下面例子输出的都是 2008-01-01:<?phpecho date("Y-m-d", mktime(0, 0, 0, 12, 32, 2007));//无效的日期echo date("Y-m-d", mktime(0, 0, 0, 13, 1, 2007));//无效的月份?>

四、strtotime() 用字符串来创建日期,用于把人类可读的英文文本字符串转换为 Unix 时间。成功返回时间戳,否则返回 FALSE

  int strtotime ( string time [, int now] )

  (1)明天此时的时间戳strtotime(”+1 day”)/strtotime("tomorrow");
  (2)昨天此时的时间戳strtotime(”-1 day”)
  (3)下个星期此时的时间戳strtotime(”+1 week”)
  (4)上个星期此时的时间戳strtotime(”-1 week”)
  (5)指定下星期几的时间戳strtotime(”next Thursday”)
  (6)指定上星期几的时间戳strtotime(”last Thursday”)

  (7)三个月后此时的时间戳strtotime("+3 Months");

  我们结合mktime()或date()格式化日期时间获取指定的时间戳,实现所需要的日期时间。

  更多日期函数函数:http://www.w3school.com.cn/php/php_ref_date.asp

文件操作

一、include和require

  服务器端包含 (SSI) 用于创建可在多个页面重复使用的函数、页眉、页脚或元素。

  include (或 require)语句会获取指定文件中存在的所有文本/代码/标记,并复制到使用 include 语句的文件中。

  include 和 require 语句是相同的,除了错误处理方面:

  • require 会生成致命错误(E_COMPILE_ERROR)并停止脚本
  • include 只生成警告(E_WARNING),并且脚本会继续

  用法:

  include ‘filename‘;

  require ‘filename‘;

  include和require的区别:

    如果用 include 语句引用某个文件并且 PHP 无法找到它,脚本会继续执行,反正没找到就没找到。当文件不是必需的,且应用程序在文件未找到时应该继续运行时用。

    如果用require,引用的文件找不到,页面会报错。当文件被应用程序请求时用。

二、readfile() 函数

  读取文件,并把它写入输出缓冲。读取成功返回字节数(bytes),读取失败返回false

  int readfile    ( string $filename   [, bool $use_include_path = false   [, resource $context  ]] )

  filename

  要读取的文件名。

 use_include_path

  想要在include_path中搜索文件,可使用这个可选的第二个参数,设为 TRUE

 context

  Stream 上下文(context) resource。

   readfile("test");//读取文件

 更多例子见:http://php.net/manual/en/function.readfile.php

三、fopen()函数

  resource fopen    ( string $filename   , string $mode   [, bool $use_include_path = false   [, resource $context  ]] )

  filename:

  如果 filename是 "scheme://..." 的格式,则被当成一个URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP        将发出一条消息来帮助检查脚本中潜在的问题并将filename当成一个普通的文件名继续执行下去。

如果 PHP 认为filename指定的是一个本地文件,将尝试在该文件上打开一个流。该文件必须是        PHP 可以访问的,因此需要确认文件访问权限允许该访问。如果激活了安全模式或者 open_basedir则会应用进一步的限制。

如果 PHP 认为filename指定的是一个已注册的协议,而该协议被注册为一个网络URL,PHP 将检查并确认allow_url_fopen已被激活。如果关闭了,PHP 将发出一个警告,而 fopen 的调用则失败。

  mode:

  

 user_include_path

  如果也需要在 include_path中搜寻文件的话,可以将可选的第三个参数use_include_path设为 ‘1‘ 或 TRUE

  返回值:

  成功时返回文件指针资源,如果打开失败,本函数返回 FALSE

四、fread()

  string fread    ( resource $handle   , int $length   )

  fread() 函数读取打开的文件。

  fread() 的第一个参数包含待读取文件的文件名,第二个参数规定待读取的最大字节数。

  如下 PHP 代码把 "webdictionary.txt" 文件读至结尾:

 fread($myfile,filesize("webdictionary.txt"));

五、 fclose()

  bool fclose    ( resource $handle )

  fclose() 函数用于关闭打开的文件。

  注释:用完文件后把它们全部关闭是一个良好的编程习惯。您并不想打开的文件占用您的服务器资源。

  fclose() 需要待关闭文件的名称(或者存有文件名的变量):

<?php
$myfile = fopen("webdictionary.txt", "r");
// some code to be executed....
fclose($myfile);
?>

六、fgets()

  string fgets    ( resource $handle   [, int $length  ] )

  fgets() 函数用于从文件读取单行。

  $handle

  必须是fopen,fsockopen没有fclose的文件

  $length

  从 handle指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。

  返回值

  从指针 handle 指向的文件中读取了 length - 1 字节后返回字符串。    如果文件指针中没有更多的数据了则返回 FALSE。错误发生时返回 FALSE

  注释:调用 fgets() 函数之后,文件指针会移动到下一行。

  下例输出 "webdictionary.txt" 文件的首行:

  实例

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fgets($myfile);
fclose($myfile);
?>

七、fgetc()

  string fgetc    ( resource $handle)

  fgetc() 函数用于从文件中读取单个字符。

  $handle

  必须是fopen,fsockopen没有fclose的文件

  返回值

返回一个包含有一个字符的字符串,该字符从 handle 指向的文件中得到。   碰到 EOF 则返回 FALSE

  Warning

  此函数可能返回布尔值FALSE,但也可能返回等同于 FALSE 的非布尔值。请阅读 布尔类型章节以获取更多信息。应使用===运算符来测试此函数的返回值。

  注释:在调用 fgetc() 函数之后,文件指针会移动到下一个字符。

  下例逐字符读取 "webdictionary.txt" 文件,直到 end-of-file:

  实例

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// 输出单字符直到 end-of-file
while(!feof($myfile)) {
  echo fgetc($myfile);
}
fclose($myfile);
?>

八、feof()

  bool feof    ( resource $handle )

  feof() 函数检查是否已到达 "end-of-file" (EOF)。

  feof() 对于遍历未知长度的数据很有用。

  下例逐行读取 "webdictionary.txt" 文件,直到 end-of-file:

  实例

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// 输出单行直到 end-of-file
while(!feof($myfile)) {
  echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>

php操作MySQL数据库中语句

我们常常用conn.php文件来建立与数据库的链接,然后在所需的文件中利用include 进行调用。这样有效防止对数据库属性的改动 而引起其他有关文件对数据调用的错误。

 现在来看一个conn.php文件,代码如下:

1 <?php
2  [email protected]_connect("localhost","root","")or die("数据库连接错误");//链接数据库服务器
3  mysql_select_db("messageboard",$conn);//选择数据库名为messageboard
4  mysql_query("set names ‘utf8‘");//使用utf8编码,这里不能写成utf-8否则将显示乱码,但UTF8不区分大小写5 ?>

学习积累,收集了PHP操作MYSQL的几个基础函数:

1.使用mysql_connect()函数连接MySQL服务器:mysql_connect("hostname", "username","password");

如,$link = mysql_connect("localhost", "root", "911") or die("不能连接到数据库服务器!可能是数据库服务器没有启动,或者用户名密码有误!".mysql_error());

2.使用mysql_select_db()函数选择数据库文件:mysql_query("use 数据库名",$link);

如,$db_selected=mysql_query("use example",$link);

3.使用mysql_query()函数执行SQL语句:mysql_query(string query(SQL语句),$link);

如:

添加会员:$result=mysql_query("insert into tb_member values(‘a‘,‘111‘)",$link);

修改会员:$result=mysql_query("update tb_member setuser=‘b‘,pwd=‘000‘where user=‘a‘",$link);

删除会员:$result=mysql_query("delecte from tb_member where user=‘b‘",$link);

查询会员:$sql=mysql_query("select * from tb_book");

模糊查询:$sql=mysql_query("select * from tb_book where bookname like ‘%".trim($txt_book)."%‘");

//通用符%表示零个或任意多个字符。

显示表结构:$result=mysql_query("DESC tb_member");

4.使用mysql_fetch_array()函数从数组结果集中获得信息:

语法结构:array mysql_fetch_array(resource result[,int result_type])

参数result资源类型的参数,整形型参数,要传入的是由mysql_fetch_array()函数返回的数据指针;

参数result_type:可选项,php操作MySQL数据库语句基础整数型参数,要传入的是MYSQL_ASSOC(关联索引)、MYSQL_NUM(数字索引) MYSQL_BOTH(包括前两者,默认值)

如:

  1. <1>$sql=mysql_query("select * from tb_book");
  2. $info=mysql_fetch_object($sql);
  3. <2>$sql=mysql_query("select * from tb_book where bookname like ‘%".trim($txt_book)."%‘");
  4. $info=mysql_fetch_object($sql);

5.使用mysql_fetch_object()函数从结果集中获取一行作为对象:

语法结构:object mysql_fetch_object(resource result);

如:

  1. <1>$sql=mysql_query("select * from tb_book");
  2. $info=mysql_fetch_object($sql);
  3. <2>$sql=mysql_query("select * from tb_book where bookname like ‘%".trim($txt_book)."%‘");
  4. $info=mysql_fetch_object($sql);

mysql_fetch_object()函数与mysql_fetch_array()函数类似,只有一点区别,即返回一个对象而不是数组,该函数只能通过字段名来访问数组。访问结果集中行的元素的语法结构:$row->col_name(列名)

6.使用mysql_fetch_row()函数逐行获得结果集中的每条记录:

语法结构:array mysql_fetch_row(resource result)

如:

  1. <1>$sql=mysql_query("select * from tb_book");
  2. $row=mysql_fetch_row($sql);
  3. <2>$sql=mysql_query("select * from tb_book where bookname like ‘%".trim($txt_book)."%‘");
  4. $row=mysql_fetch_row($sql);

7.使用mysql_num_rows()函数获取结果集中地记录数:

语法结构:int mysql_num_rows(resource result)

如:

  1. $sql=mysql_query("select * from tb_book");
  2. ......
  3. <?php $nums=mysql_num_rows($sql);echo $nums;?>

注:若要获得insert、update、delete语句的所影响到的数据,则必须使用mysql_affected_rows()函数来实现。

8.mysql_query("set names gb2312");//设置MySQL的编码格式为 gb2312类型,以屏蔽乱码。

9.关闭记录集:mysql_free_result($sql);

10.关闭MySQL数据库服务器:mysql_close($conn);

时间: 2024-12-21 16:00:04

php最全基础,数组,函数,超全局变量,时间,回话,文件,php操作mysql的相关文章

18 PHP数字与字符运算 do while ,for 数组 函数 局部通信 时间日期

转义字符 赋值传值/引用传值 [PHP中的数字与字符运算] do while循环 for循环 红白黑球问题 [提高代码质量--红白黑球问题] 赋值传值和引用传址 数组 枚举数组 关联数组 数组的创建 使用array()函数创建数组 重载数组下标 多维数组 数组操作函数 print_r() unset() count() foreach() 数组元素的删除和增加函数 array_shift() array_values() list() 计算机运行时间计算 函数的概念 函数的语法结构 函数结构说明

PHP 学习笔记(一):基础教程:语法,变量,函数,数组,超全局

PHP简介 PHP 脚本在服务器上执行. 什么是 PHP 文件 PHP 文件能够包含文本.HTML.CSS 以及 PHP 代码 PHP 代码在服务器上执行,而结果以纯文本返回浏览器 PHP 文件的后缀是 ".php" PHP能够做什么 PHP 能够生成动态页面内容 PHP 能够创建.打开.读取.写入.删除以及关闭服务器上的文件 PHP 能够接收表单数据 PHP 能够发送并取回 cookies PHP 能够添加.删除.修改数据库中的数据 PHP 能够限制用户访问网站中的某些页面 PHP

PHP 常量、PHP 变量全解析(超全局变量、变量的8种数据类型等)

常量特点 常量一旦被定义就无法更改或撤销定义. 常量名不需要开头的$ 与变量不同,常量贯穿整个脚本是自动全局的. 作用域不影响对常量的访问 常量值只能是字符串或数字 设置 PHP 常量 如需设置常量,请使用 define(name, value) 函数,它有三个参数: - 首个参数定义常量的名称 - 第二个参数定义常量的值 - 可选的第三个参数规定常量名是否对大小写敏感.默认是大小写敏感:false. define("MYNAME", "白小明"); echo MY

编程入门:C语言基础知识全网超全不用到处找了!(文末附清单)

你背或者不背,干货就在那里,不悲不喜 你学或者不学,编程就在那里,不来不去 听到这话的你是否略感扎心? 编程入门:C语言基础知识全网超全不用到处找了!(文末附清单)01基础知识 计算机系统的主要技术指标与系统配置. 计算机系统.硬件.软件及其相互关系. 微机硬件系统的基本组成. 包括:中央处理器(运算器与控制器),内存储器(RAM与ROM),外存储器(硬盘.软盘与光盘),输入设备(键盘与鼠标)输出设备(显示器与打印机).如果大家如果在自学遇到困难,想找一个C++的学习环境,可以加入我们的C++学

(基础篇)数组函数详解

一.数组操作的基本函数 数组的键名和值 array_values($arr);获得数组的值 array_keys($arr);获得数组的键名 array_flip($arr);数组中的值与键名互换(如果有重复前面的会被后面的覆盖) in_array("apple",$arr);在数组中检索apple array_search("apple",$arr);在数组中检索apple ,如果存在返回键名 array_key_exists("apple",

超全局变量数组get post requerst resver的使用规则

超全局变量数组的概念不同于全局变量,这里我主要说的是用来接收信息用的.其实在以往已经大量使用了 首先:get数组,速度较好,但是相对不是很安全. post数组,可以接收大的数据量,较安全,最常用. request数组,可以接收get和post的数据,但是最不建议,不安全. resver数组,这是现实客户端信息用的,并不用来接收数据. 下面是代码实例: <html> <head> <title>测试</title> <meta charset="

通过ajax前端后台交互/登录页和注册页前端后台交互详解/前端后台交互基础应用/几个后台函数的基础应用/php文件函数基础应用/php字符传函数基础应用/php数组函数基础应用

  前  言  PHP     学习了好久的PHP,今天做一个可以后台交互的登录页和注册页,没做什么判断,简单的了解一下. 具体的内容分析如下: ① PHP中的数据传输-->>由注册页传输给注册页后台-->>注册页后台经过转码保存实例化的文件 ② 在登录页输入账户密码,点击登录时,获得触发函数:获得由后台传输过来的true或者false---转换页面或者弹出输入错误.    登录页后台获取保存账户密码的实例化文件,通过转码,if判断之后传输给前台登录页TURE或者FALSE. 总共

PHP数组函数基础知识

什么是数组?数组就是被命名的用来存储一系列数值的地方.数组array是非常重要的数据类型.相对于其他的数据类型,它更像是一种结构,而这种结果构可以存储一系列数值.数组能够在单一变量名中存储许多值,并且能够通过引用下标号来访问某个值. 在 PHP 中,有三种数组类型: 索引数组 - 带有数字索引的数组 关联数组 - 带有指定键的数组 多维数组 - 包含一个或多个数组的数组 创建数组 array(key => value) 创建索引数组 使用array()函数声明数组.PHP属于弱类型语言相对较灵活

python基础(局部、全局变量、函数、文件的操作)

局部变量 可以用返回值全局变量如果一个函数有返回值,在没有调用函数之前 用这个变量保存的话,没有任何的意义global如果在局部变量中加入global 用来对一个全局变量的声明wendu = 0def test1():global wenduwendu = 33 def test2():print("%d"%wendu)#test1()test2() 结果为0 wendu = 0def test1():global wenduwendu = 33 def test2():print(&