php学习笔记 1

三 php标记风格
3.1
xml风格
<?php
?>

脚本风格
<script language="php">
</script>

简短风格
<?
?>

ASP风格
<%
%>
使用后两种风格需要配置php.ini

3.2 php注释
<?php
echo 'c++风格';//这就是c++风格 单行
/*
其实也可以多行注释
*/
echo 'shell 风格也尅';  # shell风格  井号后面的看不见呢
?>

3.3. PHP数据类型
4标量类型: boolean integer float/double string
2符合类型: array object
2特殊类型: resource NULL


php支持弱类型 定义变量用$  不需要事先声明
所有变量开头都要以$


string中  ""双引号中的变量会自动替换成实际的数值
单引号包含的变量会按普通的字符串输出

界定符
$string=<<<str
something
str;
界定符的作用和双引号相同

3.2复合数据类型
数组:
定义语法
$array=('value1','value2',......);

$array[key]='value';
或者
$array=array(key1=>value1,key2=>value2,.........);


3.3.特殊数据类型


-----------
<!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=gb2312" />
</head>

<?php
echo "变量(\$string1)直接赋值为null";
$string1=null;
$string3="Str";
if(is_null($string1))
    echo "string1=null";
echo "<p>变量(\$string2)未被赋值:";
if(is_null($string2))
    echo "string2=null";
echo "<p>被unset处理过的变量(\$string3):";


unset($string3);
if(is_null($string3))
    echo "string3=null";
    ?>

所以,未定义的变量或者unset的变量的值 为null
<body>
</body>
</html>

------------
3.3.4转换数据类型
boolean string integer float array object

也可以通过settype完成
bool settype(mixed var,string type)

3.3.5数据类型检测

is_bool  is_string is_float/is_double is_null is_object is_numeric

3.4.1 php常量
define(string constant_name,mixed  value,case_sensitive=true)
true表示不敏感

constant()获取常量值  也可以直接饮用

bool defined(string constant_name) 可以判断一个常量是否已经定义


3.4.2
预定义常量获取PHP中的信息
__FILE__  PHP程序文件名
__LINE__  PHP程序行数
PHP_VERSION   PHP程序版本
PHP_OS  PHP解析器的操作系统名称
E_ERROR   
E_WARNING
E_PARSE
E_NOTICE



-------------------------------------------------
<!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=gb2312" />
</head>

<?php
echo '<br>';
echo "当前文件路径:".__FILE__.'<br>';
echo "当前行数:".__LINE__.'<br>';
echo "当前PHP版本信息:".PHP_VERSION.'<br>';
echo "当前操作系统:".PHP_OS.'<br>';
?>
<body>
</body>
</html>
----------------------------------------------------


3.5 PHP变量

变量名以英文字母开头

正常赋值  和  引用赋值 两种

$string1=$string2;

引用赋值:$s1=&$s2;

3.5.2作用域..
static 可以初始化 静态变量  (也就是全局变量哦)

global $str;可以可以是变量成为全局变量.


3.5.3 可变变量


-------------------------------------------------
<!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=gb2312" />
</head>

<?php
echo "<br>";
?>
可变变量
<?php
$change_name="trans";
$trans="you can see me !";
echo $change_name;
echo "<br>";
echo $$change_name.'<br>';

?>
<body>
</body>
</html>
----------------------------------------------------
3.5.4PHP预定义变量
$_SERVER['SERVER_ADDR']  当前运行脚本所在的服务器的IP地址
$_SERVER['SERVER_NAME'] 服务器主机的名称(虚拟主机)
$_SERVER['REQUSET_METHOD'] 访问页面时的请求方法
$_SERVER['REMOTE_ADDR'] 正在浏览当前页面的用户IP
$_SERVER['REMOTE_HOST']
$_SERVER['REMOTE_PORT']
$_SERVER['SCRIPT_FILENAME'] 当前执行脚本的绝对路径名
$_SERVER['SCRIPT_PORT']
$_SERVER['SERVER_SIGNATURE'] 包含服务器版本和虚拟主机名的字符串
$_SERVER['DOCUMENT_ROOT'] 当前运行脚本所在的文档根目录 在服务器配置文件中定义
$_COOKIE 通过httpcookie传递到脚本的信息  通过setcookie()设置
$_SESSION  包含与所有会话变量有关的信息  $_SESSION主要用于会话控制和页面之间的值的传递

$_POST $_GET $GLOBALS

-------------------------------------------------
<!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=gb2312" />
</head>

<?php
echo "<br>";
?>
<?php

echo $_SERVER['SERVER_ADDR']."当前运行脚本所在的服务器的IP地址"."<br>";
echo $_SERVER['SERVER_NAME']."服务器主机的名称(虚拟主机)"."<br>";
echo $_SERVER['REQUSET_METHOD']."访问页面时的请求方法"."<br>";
echo $_SERVER['REMOTE_ADDR']."正在浏览当前页面的用户IP"."<br>";
echo $_SERVER['REMOTE_HOST'].""."<br>";
echo $_SERVER['REMOTE_PORT'].""."<br>";
echo $_SERVER['SCRIPT_FILENAME']."当前执行脚本的绝对路径名"."<br>";
echo $_SERVER['SCRIPT_PORT'].""."<br>";
echo $_SERVER['SERVER_SIGNATURE']."包含服务器版本和虚拟主机名的字符串"."<br>";
echo $_SERVER['DOCUMENT_ROOT']."当前运行脚本所在的文档根目录 在服务器配置文件中定义"."<br>";


?>
<body>
</body>
</html>
----------------------------------------------------


3.6 PHP运算符

3.6.1算术运算符
+ - * / % ++ --
3.6.2字符串运算符
只有一个 就是 字符串连接符 .
3.6.3  赋值运算符
= += -= *= /= %= .-
3.6.4位运算
& | ^  ~ <<  >>
3.6.5 逻辑运算符
&& || xor ! and or
3.6.6 比较运算符
< > <= >= ==  != === !== 后两者 不常见  要求 不仅值相等 而且 类型也要相同
3.6.7 错误控制运算符  @

3.6.8  三元运算符  
(expr1)?expr2:expr3;
3.6.9 优先级
不做优先级都搞不懂的  ?b

3.8 PHP函数
function fun_name($str1,$str2 .....)
{
fun_body;
}

3.8.2 函数传参
按值传递 和 按引用传递
$str         &$str
默认参数放在末尾
3.8.2 从函数中返回值
function func()
{
return $value;
}
用return;
想返回多个值 请用数组
3.8.4 变量函数
和可变变量差不多  也和函数指针略似
3.8.5函数引用
函数引用的实质 就是 对函数返回结果的引用调用

3.8.6 取消引用使用unset
unset() 函数的作用就是 取消 变量名和 比变量内容 之间的绑定


3.9 PHP 编码规范
PHP不推荐使用下划线
引用变量要带有r前缀
全局变量带有g前缀
静态变量带有s前缀

第四章 流程控制语句
4.1 选择控制
4.1.1
if(expr){}
4.1.2
if(expr){  ; }
else {  ; }
4.1.3
if(expr1) { ;}
else if(expr2) { ; }
else { ; }
4.1.4 switch ...case
swtich(variable)
{
case value1:
break;
....
default:
default statment;
}

4.2 循环控制
4.2.1
while()  {  }
4.2.2
do
{ ; }
while(expr1);
4.2.3 for
for(expr1;expr2;expr3){ ; }
4.2.4 foreach
PHP 4 引进来的 只能用于数组 在PHP5中又增加了对对象的支持
格式为 foreach(array_expression as $value)
    statement;
或者
foreach(array_expression as $key=>$value)
statement;

-----------------------------------------------------------

<!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=gb2312" />
</head>
<body>
<?php
echo "<br>"."-------------------------------------------------"."<br>"."<br>";
?>
<?php

$name=array("1"=>"智能机器人","2"=>"数码相机","3"=>"天翼手机","4"=>"瑞士手表");
$price=array("1"=>"14998元","2"=>"2588元","3"=>"2666元","4"=>"66698元");
$counts=array("1"=>1,"2"=>1,"3"=>2,"4"=>1);
echo '<table width="580" border="1" cellpadding="1" cellspacing="1" border="#FFFFFF" bgcolor="#c17e50"><tr>
<td width="145" align="center" bgcolor="#FFFFFF" ">商品名称</td>
<td width="145" align="center" bgcolor="#FFFFFF" ">价    格</td>
<td width="145" align="center" bgcolor="#FFFFFF" ">数    量</td>
<td width="145" align="center" bgcolor="#FFFFFF" ">金    额</td>
</tr>
';
foreach($name as $key=>$value)
{
echo '<tr>
<td height="25" align="center" bgcolor="$FFFFFF">',$value.'</td>
<td height="25" align="center" bgcolor="$FFFFFF">',$price[$key].'</td>
<td height="25" align="center" bgcolor="$FFFFFF">',$counts[$key].'</td>
<td height="25" align="center" bgcolor="$FFFFFF">',$counts[$key]*$price[$key].'</td>
</tr>';
}

echo '</table>';

?>

<?php
echo "<br>"."-------------------------------------------------"."<br>";
?>



</body>
</html>


-----------------------------------------------------------

4.2.6  break; continue; 跳出循环
continue;跳出当前循环//相当于continue 1;
continue 3;跳出3层循环


第五章 字符串操作    // 以前都没仔细看..  字符串操作在安全里面还是蛮重要的 尤其是特殊符号的过滤  好好看看...
5.2 单引号和双引号的区别
5.3 字符串连接符 .
5.4字符串操作
 5.4.1 去除字符串首尾空格和特殊字符
string trim(string str[,string charlist]);
charlist为要删除的可选字符.
默认有 \0 \t \n  \x0B \r ""
如果不设置可选字符的话 所有的可选字符都讲被删除
同时也可以自定义要删除的字符
2. ltrim() 函数用于去除字符串左边的空格或者指定的字符串
3.同理还有rtrim()
5.4.2 转义.还原字符串数据
addslashes($str)转义字符串
stripslashes($str)还原字符串
对指定范围内的字符串进行自动转义还原
addcslashes(string str,string charlist)
string strpcslashes(string str)

5.4.3 获取字符串的长度
int strlen(string str)
5.4.4 截取字符串
string substr(string,int start[,itn lengh])
5.4.5 比较字符串
.1 按字节进行字符串的比较 strcmp(str1,str2)  strcasecmp()
strcmp区分字符的大小写 而strcasecmp()不区分大小写
相等返回0  str1>str2 返回值大于0  反之小于0

.2按照自然排序法进行字符串的比较
int strnatcmp(string str1,string str2)
 特点是 自然排序法比较的是字符串中的数字部分 将字符串的数字按照大小进行排序

.3指定从源字符串的位置开始比较
strncmp(string str1,string str2,int len)


5.4.6 检索字符串
.1使用strstr()函数查找指定的关键字
string strstr(string haystack,string needle)


------------------------------------------------

<!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=gb2312" />
</head>
<body>
<?php
echo "<br>-------------------------------------------------<br><br>";
?>
<form method="post" action="index.php" enctype="multipart/form-data">
    <input type="hidden" name="action" value="upload" />
    <input type="file" name="u_file"/>
    <input type="submit" value="上传"/>
</form>
<?php
if($_POST[action]=="upload")
{
    $file_path="./uploads\\";
    $picture_name=$_FILES[u_file][name];
    $picture_name=strstr($picture_name,".");
    if($picture_name!=".jpg")
    {
        echo "<script>alert('上传格式不正确,请重新上传');window.location.href='index.php';</script>";
    }
    else if($_FILES[u_file][tmp_name])
    {
    move_uploaded_file($_FILES[u_file][tmp_name],$file_path.$_FILES[u_file][name]);
    echo "图片上传成功!";    
    }
    else echo "上传失败啊!";
}


?>

<?php
echo "<br>"."-------------------------------------------------"."<br>";
?>



</body>
</html>

-------------------------------------------------

strchr()函数正好与strstr()函数相反 倒序检索子串的
.2使用substr_count()函数 检索字串出现的次数
int substr_count(string haystack,string needle)


5.4.7 替换字符串
1.str_ireplace()
使用新的子字符串替换原始字符串中被指定要替换的字符串
mixed str_ireplace(mixed search,mixed replace,mixed subject[,int &count])

.2 substr_replace()
对指定字符串中的部分字符串进行替换
string substr_replace(string str,string repl,int start[,int lengh])


5.4.8 格式化字符串
string number_format(float number[,int num_decimal_places],[string dec_seperator],string thousands_seperator)
对数字字符串进行格式化处理

5.4.9 分割字符串
explode()
array explode(string separator,string str[,int limit])
依次为 要分割的字符串  分隔符  分割次数

5.4.10 合成字符串
implode()
string implode(string glue,array pieces)





//by-zhaoyang-2014.8.1@php-3rd-study





























  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值