分享

H5学习_番外篇_PHP的入门学习

 赵东华 2016-03-23


如果您觉得这篇文章还不错,可以去H5专题中查看更多相关文章。

首先非常抱歉,最近实在太忙,所以导致周六周日拖更,今天白天还忙工作,一直到现在才刚刚把最近学习的东西整理出来。

各位读者老爷,小的真的已经很辛苦了,现在22:17分了,我还在公司坐着,所以下面如果有什么错误的地方,也请各位观众老爷和谐讨论,别喷我。


F8CE58B2-DAA4-4EA0-AC93-B6C431E66C36.png

废话不多说了,直接上正文.


二维码.jpg

PHP学习笔记

2016年03月21日22:20:16

今日课程预览


屏幕快照 2016-03-21 22.18.41.png

屏幕快照 2016-03-21 22.18.49.png

屏幕快照 2016-03-21 22.18.55.png

1. 学习原因

我们为什么需要学习 PHP ?

因为我们以后学习过程中,肯定需要自己去搭建一些比较基础的小项目,而我们个人开发的时候没有后台给我们提供接口,所以我们就需要自己去编写一下接口,同时也为了以后成为全栈工程师打一个基础。

2. 环境的搭建

在1994年,PHP发布了1.0版本。

在1995年,PHP发布了2.0版本,在2.0中支持了 MySQL.

在1997年,PHP发布了3.0版本,加入了 Zeev Suraski 及 Andi Gutmans。

2000年发布的4.0版本。

有人说 PHP 是世界上最好的语言,虽然可能有些片面,但无可否认,PHP 有很多语言的优秀的特点。

  • 源码开放
  • 跨平台
  • 完全免费
  • 关系型数据库

同时也是因为源码开放,我们可以知道在 PHP 中存在 C,Java,Perl等语言的语法,这极大的方便了我们的学习过程。

而且,我们的 PHP 也有很多很便利的配合工具。

  • MySQL
  • Apache
  • XAMPP

我们可以将一个成熟的服务器当作一条生产线,php就像传送带一样,为我们产出数据,Mysql是数据库也就相当于提供原材料,但是传送带却依赖电机这个动力。Apache就相当于一个运行的环境。

其中 MySQL 具有体积小,速度快的优点,同时还是关系型数据库。

Apache是Web服务器软件,它可以运行在几乎所有的计算机平台上面,这是最流行的Web服务器软件之一。

XAMPP是一个功能强大的建 (Apache+MySQL+PHP+Perl) 软件站集成软件包。而且手动安装Apache+MySQL+PHP环境过于复杂,而XAMPP帮我们集成了这个环境,我们只需点击安装即可。

所以我们接下来的学习过程,就以 XAMPP 为基础咯。
需要注意
如果我们在运行过程中,发现我们的 XAMPP 中的 MySQL 启动不起来,我们需要自己手动配置。

方法1:

终端运行 : sudo /Applications/XAMPP/xamppfiles/bin/mysql.server start

方法2:

打开我们的 XAMPP 文件中的 xampp 文件。不同人放置的位置可能不同,根据个人情况设置。

sudo /Applications/XAMPP/xamppfiles/xampp

之后在 162 行,$XAMPP_ROOT/bin/mysql.server start > /dev/null &

上面添加一句 unset DYLD_LIBRARY_PATH.这样就可以了。

# 自动启动无法完成,添加该配置后可以启动 v.2016.03.21
unset DYLD_LIBRARY_PATH
#
$XAMPP_ROOT/bin/mysql.server start > /dev/null &

3. PHP 基础语法

3.1 标记方法

  1. <?php echo “hello php”; ?>
  2. <? echo “hello php”; ?> //短标记
  3. <script language=“php”>echo “hello php”</script>
  4. <% echo “hello php”; %> //asp风格

注: 1,3可以直接使用,但是2,4需要修改php.ini的配置文件才能使用

3.2 注释的方法

  1. 单行注释 //
  2. 多行注释 /星号 ... 星号/

3.3 变量

3.3.1 变量的声明

  1. 变量以$开头,后面跟变量名
  2. 变量字母,数字,下划线组成,不以数字开头
  3. 变量名区分大小写
  4. php于javascript类似是弱类型语言,不需要实现生命变量的数据类型
  5. php可以不显式的声明变量而直接使用(不过好的编程习惯所有的变量在使用前要进行声明)
$age = 28;
$color = “red”;
$sum = 15+”12”;   //$sum = 27;

3.3.2 变量的赋值

  1. 值赋值:即将赋值表达式的值复制给变量(直接赋值)
  2. 引用赋值:php4引用了引用赋值,创建的一个变量与另一个变量引用的内容相同
$var_1 = “hello”;
$var_2 = &$var_1; //把变量var_l的内存地址赋值给var_2,即引用赋值

3.3.3 变量的变量

$var_1 = “hello”;
$$var_1 = “world”;
echo $var_1;     //输出hello
echo $hello;     //输出world
echo ${$var_1}     //输出world

我们可以尝试一下,发现,我们的第三个属性$var_1输出的也是 world ,这证明,我们的变量也可以重新成为一个变量。

3.3.4 超全局变量

php提供了很多有用预定于的变量,用于提供大量与环境有关的信息

3.3.4.1 $_SERVER

服务器变量, 该全局变量包含着服务器和客户端配置及当前请求环境的有关信息

  • $_SERVER['SERVER_NAME']; : 当前运行脚本所在的服务器的主机名

  • $_SERVER['REMOTE_ADDR'] : 客户端IP地址

  • $_SERVER['REQUEST_URI'] : URL的路径部份

  • $_SERVER['HTTP_USER_AGENT'] : 操作系统和浏览器的有关信息

3.3.4.2 $_GET

该变量包含使用 GET 方法传递的参数的有关信息

    url: http://localhost/test.php?id=100&page=2
    $id = $_GET['id'];
    $page = $_GET[‘page'];
3.3.4.3 $_POST

该变量包含使用 POST 方法传递的参数的有关信息;

html:
    <form name="reg" action="test.php" method="post">
        用户名:<input type="text" name="username" />
        密码: <input type="password” name="passwd"/>
        <input type="submit" value="提交" />
    </form>
    php:    
    $username = $_POST[‘username’];
    $passwd = $_POST[‘passwd’];
3.3.4.4 其他方法
  • $_REQUEST 该变量记录着通过各种输入方法传递给脚本的变量,如GET POST,但不要用这个超级全局变量,因为它不安全而且速度比较慢;

  • $_COOKIE cookie变量数组

  • $_SESSION 会话变量数组

  • $_FILES 与上传文件有关的变量数组

  • $_ENV 环境变量数组

  • $GLOBALS 所有全局变量数组

3.4 常量

  1. 常量是指在程序执行中无法修改的值。如 PI (3.1415926);
  2. 在脚本执行期间该值不能改变;
  3. 常量对大小写敏感,通常常量名总是大写;
  4. 常量是全局的,可以在脚本的任何地方引用;
  5. 常量分为内置常量和自定义常量;
  6. 常量使用define()函数定义;
define('PI', 3.1415926);
echo PI;     //3.1415926

3.4.1 内置常量

  • PHP_OS php所在操作系统的名称
  • PHP_VERSION 当前php的版本号

3.4.2 魔术常量

  • __LINE__ 文件中的当前行号;
  • __FILE__ 文件的完整路径和文件名;
  • __FUNCTION__ 函数名称;
  • __CLASS__ 类的名称;
  • __METHOD__ 类的方法名;

3.5 数据类型

3.5.1 标量数据类型

3.5.1.1 字符串
  • 字符串有三种定义方式:单引号,双引号,定界符(heredoc);
  • 单引号字符串中出现的变量不会被变量的值替代;
  • 双引号字符串中最重要的一点是其中的变量会被变量值替代;

如果遇到美元符号($),解析器会尽可能多地取得后面的字符以组成一个合法的变量名,如果想明确的指定名字的结束,用花括号把变量名括起来。

    $beer = "Heineken";
    echo "He drank some {$beer}s";
3.5.1.2 定界符

字符串定界的方法使用定界符语法 "<<<"

    $str = <<<EOD
    Example of string
    using heredoc syntax.
EOD;
    echo $str;
  • 在PHP定界符中的任何特殊字符都不需要转义
  • PHP定界符中的PHP变量会被正常的用其值来替换

使用定界符要注意:

结束标识符所在的行不能包含任何其它字符,这意味着该标识符不能被缩进,在分号之前
之后都不能有任何空格或制表符;

3.5.1.3 其他转义符
-字符串转义
\n换行
\r回车
\t水平制表符(tab键)
\(反斜杠)
\$$(美元符)
\”“(双引号)
3.5.1.2 整型(integer)
    $age = 25;
3.5.1.3 浮点型(float, double)
    $num = 5.39;
3.5.1.4 布尔型(bool)
    $bo = TRUE;
    $bo = FALSE;

3.5.2 符合数据类型

  1. 数组

     $week = array(‘星期一','星期二','星期三');
  2. 对象

     $db = new db;

    3.5.3 特殊数据类型

  3. 资源

     $fh = fopen("test.txt","r");
  4. null

null 无,表示没有值,null不表示空格,也不表示0;

以下情况,则认为是null:

  • 没有设置为任何预定义的变量;
  • 明确的赋值为null;
  • 使用函数unset()清除;

3.6 自动类型转换

因为php对于类型定义非常的松散,所以有时会根据引用变量的环境,将变量自动转换为最适合的类型;

1$num = 5;
      $str = “15”;
      echo $num + $str;    

例2$str = “100 hello”;
      $num = 200;
      echo $num + $str;

例3$str = '1.2';
        if($str){  //if 判断为 true
            echo 'hello world';
       }

3.7 类型相关函数

1.gettype() 返回变量的类型,共有8个可能的值 string、integer、float、boolean、array、object、null、unknow

    $str = ‘hello’;
    echo gettype($str);

2.is_type() 查看变量是否属于某个类型,是返回 TRUE ,否返回 FALSE;

    $arr = array(1);
    echo is_array($arr);

    $num = 5;
    echo is_int($num);

3.var_dump() 获取变量的值和类型的详细信息

    $str = ‘hello’;
    var_dump($str);

    $arr = array(‘A’, ‘B’, ‘C’);
    var_dump($arr);

4. 运算符

4.1 算数运算符

---
+加法运算符$a+$b;
-加法运算符$a-$b;
*乘法运算符$a*$b;
/除法运算符$a/$b;
%取模运算符(求余数)$a%$b;

4.2 赋值运算符

赋值运算符,将一个数据值赋给一个变量;

组合赋值运算符,在赋值之前会完成某个运算;

---
$a = 5赋值
$a += 5加法赋值$a = $a + 5
$a -= 5减法赋值$a = $a – 5
$a *= 5乘法赋值$a = $a * 5
$a /= 5除法赋值$a = $a / 5
$a .= 5拼接赋值$a = $a.5

4.3 字符串运算

字符串运算符用于拼接字符串, 拼接表示将两个或多个对象组合起来;

    $a = "hello";
    $b = $a . “world";    //.表示拼接前后两个字符串
    echo $b;

    $b = "Hello";
    $b .= “World!";    //.=  表示 $b = $b.”World”;
    echo $b;

4.4 自增自减

递增和递减运算符将变量的当前值加1或减1,可以使代码更简洁;

---
++$i先加$i的值加1,然后再返回$i的值;
$i++后加先返回$i的值,然后再将$i的值加1;
--$i先减$i的值减1,然后再返回$i的值;
$i--后减先返回$i的值,然后再将$i的值减1;

4.5 逻辑运算符

利用逻辑运算符可以根据多个变量的值进行判断,这使得控制程序的流程成为可能,逻辑
操作符常用于控制结构中,如if条件和while及for循环;

---
&&AND逻辑与
竖线OR逻辑或
!NOT逻辑非

4.6 比较运算符

比较运算符,返回一个布尔值 TRUE 或 FALSE;

--
>大于
<小于
>=大于或等于
<=小于或等于
!=不等于
<>不等于
==等于
===全等于 (两个比较的内容里,类型也要一样)
!==全不等

4.7 三元运算符

语法:1 ? 2 : 3

    $a = 5;
    $b = 2;
    $res = $a > $b  "yes":"no"; 
    echo $res;

4.8 运算符的优先级

所谓运算符的优先级指的是哪一个运算符应该先计算。

具体运算符的优先级,参考php手册;

赋值运算,从右到左

echo 1 + 2 * 3;        //outputs 7

5. 流程控制

5.1 判断语句

5.1.1 If 语句

if( ){
    //statement
}else if(){
     //statement
}else{
     //statement
}

If语句用括号中的表达式返回值(true 或 false )来控制是否执行指定的代码程序;

表达式为数字0、空、未定义的字符串,内置常量false都会返回false;

5.1.2 Switch 语句

switch 语句可以看作是if-else组合的一种变体,如果需要比较有限值的变量,通常会使用switch语句;

    语法格式:
    switch (){
        case value:
               //statements
             break;
        default:
          //statements
    }

在每个case块的末尾处都有break语句,如果没有break语句,就会执行所有后续的case块,直到遇到break语句为止;

5.2 循环语句

5.2.1 While

语法格式:

    while(){
        //statements
    }

例:

    $count = 1;
    While ($count < 5) {
        echo "$count 平方 = ".pow($count, 2)."<br />";
    $count++;
    }

5.2.2 do…while

do…while循环是while的一种变体,它在代码块的结束处验证循环条件;

语法格式:

do {
  //statements
}while();

例:

$count = 11;
do {
  echo "$count squared = ". pow($count, 2). "<br />";
      $count++;
}while($count < 10);

5.2.3 for循环

语法格式:

for(1; 2; 3){
    //statements
}

第一个表达式1在第一次循环时计算;

第二个表达式2在每次循环时进行计算,这个表达式确定循环是否继续执行;

第三个表达式exprression3在每次循环结束时计算;

例:

for($i = 1; $i <= 5; $i++){
       echo "$i squared = ".pow($count, 2)."<br/>";
}

5.2.4 跳出循环

  1. break

    如果包含一个break语句,将立即结束 while、do…while、for、foreach、switch的执行。

  1. continue

    continue语句使当前循环执行结束,并从下一次循环开始执行;

6.函数

函数是用来完成某种特定任务的可重用代码块;

函数可以使程序更具模块化,拥有良好的结构;

函数定义后在程序中可以重复调用;

函数分为内置函数和自定义函数。

6.1 函数分类

  1. 内置函数
    PHP系统提供了大量功能强大的函数,帮助我们解决各种问题;

  2. 创建自定义函数

    function function_name(parameters) {
        //function body
    }

例:

    function sayhello(){
        echo 'hello';
    }

6.2 函数简介

函数用function关键字来声明;

函数名称是由字母或下划线开始,中间可以包含数字;

函数名不区分大小写,不过在调用函数的时候,通常使用其在定义时相同的形式;、

php不支持函数重载, 所以自定义函数不能和内置函数重名;

不能在一个文件中自定义同名的函数;

参数出现在括号中,如果有多个参数用逗号分隔;

函数调用

语法格式:

fun_name(parameters);

例:

$val = pow(4, 2);

echo pow(3, 3);

6.3 函数的区别

注意不同语言的区别:

  • 在Java等强类型语言中方法的名字严格区分大小写;
  • C语言中的函数也是严格区分大小写;
  • 但PHP到现在的版本,函数名称不区分大小写;
  • 很多语言允许函数(方法)的重载,即函数有相同的名称但是函数参数不同;
  • PHP不支持函数的重载;

6.4 参数传递

值传递(传值)

函数内对参数值的改变不会影响函数外部的值;

引用传递(传址)

有些情况下,可能希望在函数体内对参数的修改在函数体外也能反映;

使用引用传递参数要在参数前加上&符号;

变量本身传入,传入后的变量与原变量建立联系;

函数体内变量的变化,会影响到原变量本身;

例:

function sum($num_1, $num_2){
        $res = $num_1 + $num_2;
        return $res;
   }

默认参数值:可以为参数指定默认值,在没有提供其他值的情况下,则将默认值自动赋给该参数;

可选参数:可以指定某个参数为可选参数,这些参数需要放在参数列表的末尾,需且要指定其默认值为空;

如果指定了多个可选参数,可以选择性地传递某些参数;

6.5 返回值

通常情况下,只依靠函数做某些事情还不够; 需要将函数的执行结果返回给调用者,这时可以使用 return 语句返回结果;

return 语句变执行后,将使得函数立即结束运行,并且将控制权返回被调用的行;

例:

    function mysquare($num){
        if($num == ‘’){
                return;
            }
            $res = $x * $x;
            return $res;
           }
           echo mysquare(4);

6.6 递归函数

递归函数是一个可以重复调用自身的函数,直到满足某个条件为止;

递归函数常用来解决一些重复的问题;

递归应该特别注意条件,防止进入死循环中;

例:

    function repayment($balance, $payment){
        static $count = 1;
        $newbalance = $balance - $payment;
        echo $count.' '.$newbalance.'<br>';
        if($newbalance > 0){
            $count++;
            repayment($newbalance, $payment);
        }else{
            exit;
        }
     }
    $money = 20000;
    $month_pay = 1000;
    repayment($money, $month_pay);

6.7 变量作用域和生命周期

由于引入了函数,程序中变量的能见度发生了变化,即变量的作用范围发生了改变;

变量分为:全局变量,局部变量,静态变量;

局部变量,函数体内定义的变量为局部变量,只在函数体内可见;

局部变量的作用域:从声明它的那条语句开始到函数结束;

例:

        $str = 'hello php';
        echo '1:'.$str.'<br />';
        function change(){
            $str = 'hello everyone';
            echo '2:'.$str.'<br />';
        }
        change();
        echo '3:'.$str;

6.8 include和require

  1. include()

    include()语句将在其被调用的位置处包含一个文件。

    例: include(“init.php");

  2. include_once()

    include_once()的作用与include()相同,不过它会首先验证是否已经包含了该文件,如果已经包含,则不再执行include_once();

  3. require() 与include() 一样,只不过require()我们通常放在php程序的最前面;

  4. require_once() 与include_once() 一样,但是也要放在php程序的最前面;

  5. include和require的区别

    require一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误

    include一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误。

7.数组

7.1 数组的概念

数组可以理解为有序的(键-值)对组成的数据值的集合;

如果我们把变量理解为单个值的容器,那么数组就是可以包含多个值的容器;

根据索引值的不同数组分为:索引数组和关联数组;

例:

$day = array(“a”,”a”,”a”);     //索引数组
$week = array("a"=> "星期一", "b"=>"星期二", "c"=> “星期三");      //关联数组

7.2 数组的创建

7.2.1 使用array()函数

array array ( [mixed ...] )

例:

    $arr = array();
    $fruits = array("orange", "apple", "banana");
    $languages = array("en"=> "english", "cn"=> "china");

与其它语言的数组实现方式不同,php不需要在创建数组时指定其大小;

因为php是一种松散类型的语言,所以甚至不需要在使用前先声明;

索引可以是整型数字或者是字符串;

索引数组:索引为整数,如果没有指定索引值则默认为零,依次递增;

关联数组:索引为字符串的数组;

7.2.2 直接对数组变量赋值

$arr[key] = value;

例:

    $fruits[] = "orange";
    $fruits[] = "apple";
    $languages["en"] = "english";
    $languages["cn"] = "china";

如果方括号中没有指定索引,则取当前最大整数索引值,新的键名将是该值 + 1。

如果当前还没有整数索引,则键名将为0。如果指定的键名已经有值了,该值将被覆盖。

7.2.3 使用函数创建数组

range() 建立一个包含指定范围单元的数组

例:

    $num = range(1, 100);
    print_r($num);
    $letter = range('a','I');
    print_r($letter);

7.3 数组的基本操作

  1. unset() 释放给定的变量
  2. print_r() 打印数组
  3. count() 取得数组大小
  4. in_array() 检查数组中是否包含某个值

7.4 遍历数组

  1. for 循环遍历数组

  2. 使用数组指针遍历数组
    key() 返回数组当前指针元素的索引;
    current() 返回数组当前指针元素的值;
    next() 将数组指针向前移动一位,并返回当前指针元素的值; 如果超出了数组元素的末尾,则返回FALSE
    prev() 将数组指针往回移动一位, 并返回当前指针元素的值; 如果指针本来就位于数组的第一个位置则返回FALSE;
    reset() 将指针指向第一个元素,并返回第一个元素的值
    end() 将数组指针指向最后一个元素, 并返回最后一个元素的值;
    each() 返回数组当前指针元素的键和值,并将指针推进一个位置;如果内部指针越过了数组的末端,则 each() 返回 FALSE。
    list() 把数组中的值赋给一些变量;

  3. foreach 循环遍历数组

例1:

    $fruits = array('apple', 'banana', 'orange');
    echo current($fruits );        
    each($fruits );        //使用each()推进指针向前一步    
    echo current($fruits );
    next $fruits );        //也可以使用next() 推进指针向前一步
    echo current($fruits );
    end($fruits );        //将数组指针指向最后一个元素
    print_r(each($fruits));
    list($val1, $val2, $val3) = $fruits;
    echo $val1;
    echo $val2;
    echo $val3;

例2:

    $fruits = array('apple', 'banana', 'orange'); 
    do{
        echo key($fruits). '=> '.current($fruits);
     }while(next($fruits));

    while($arr = each($fruits)){
        echo $  arr['key'].''.$arr['value'];
    }    
    while(list($key, $value) = each($fruits)){
        echo $key.''.$value;
    }

7.5 二维数组

数组元素的值也可以是数组;

例:

    $result = array(
    array(
    'pname'=> 'nokia n73',
    'price'=>  1500,
    ),
    array(
    'pname'=> 'nokia 5800',
    'price'=>  2000,
    ),
    );

遍历二维数组:

    foreach($products as $product_k=>$product_v){
        foreach($product_v as $key=>$val){
            echo $key.'=>'.$val;
        }
    }

7.6 数组字符串转换

  1. explode() 返回由字符串组成的数组

例:

    $str = "1,2,3,4,5,6";
    $arr = explode(',', $str);
    print_r($arr);
  1. implode() 将数组元素连接成字符串

例:

    $arr = array('a','b', 'c', 'd');
    $str = implode('|', $arr );
    echo $str;

8. 字符串

8.1 输出字符串

  • echo

void echo ( string arg1 [, string ...] )
是一个语法 ,不是函数

echo 没有返回值;

echo 可以输出多个值,使用逗号分隔;
例:

         $val = "world";
        echo "hello", $val;
  • print

int print ( string arg ) 实际上不是一个函数(它是一个语言结构)
例:

    print ("hello $val");
    print "hello world”;
  • printf()

功能:格式化输出字符串;

int printf ( string format [, mixed args [, mixed ...]] )

--
%b二进制输出brianry
%d整数输出data
%f浮点数输出float
%s字符串输出string

例:

    $str = "123 test";
    printf("整数:%d", $str);
    printf("浮点数:%.2f", $str);
    printf("字符串:%s", $str);
  • sprintf()
    功能与printf相同,但不会直接输出结果;
    string sprintf ( string format [, mixed args [, mixed ...]] )

例:

    $str = "123 test";
    $val = sprintf("%d", $str);
    echo $val;

8.2 查找与替换

  1. strpos()

    int strpos ( string haystack, mixed needle [, int offset] )

    strpos()函数在 haystack 中以区分大小写的方式找到 needle 第一次出现的位置;

    如果没有找到则返回FALSE;

    可选参数offset 指定开始查找的位置;

    例:echo strpos("Hello world!","wo");

  2. stripos()

    stripos()与strpos()功能相同,只是查找时不区别大小写;

  3. str_replace()

    mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count] )
    str_replace()函数在subject中以区分大小写的方式搜索 search ,

    用replace替换找到的所有内容; 如果没有找到search,则subject保持不变;

    如果定义了可选参数 count 则只替换subject中count个search

    例:

     $str = "test@163.com";
     $email = str_replace("@", "(at)", $str);
     echo $email;
  4. str_ireplace()

    str_ireplace()与str_replace()功能相同,只是不区分大小写;

8.3 截取与字符串

  1. substr()

    string substr ( string string, int start [, int length] )

    从start位置取出length长度的字符,字符串位置开始值为零;

    如果没有指定length,那么默认一直到字符串末尾;

    例:

     echo substr("Hello world", 6);
    echo substr("hello world", 6, 5);
  2. strstr()

    string strstr ( string haystack, string needle )
    strstr() 函数搜索一个字符串在另一个字符串中的第一次出现

    该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串则返回
    fas。?
    例:echo strstr("Hello world!","world");

  3. stristr()

    stristr()与strstr()功能相同,只是不区分大小写;

    例: echo strstr("Hello world!","WORLD");

8.4 删除字符串

  1. ltrim()

    string ltrim ( string str [, string charlist] )

    ltrim 函数删除字符串左侧空格或其他预定义字符;

    如果未设置charlist参数,则删除以下字符:

    -|-
    :--|:--
    "\0" |NULL
    "\t" | 制表符
    "\n" |换行
    "\x0B" |垂直制表符
    "\r" |回车
    " " |空格

  2. rtrim()

    string rtrim ( string str [, string charlist] )

    rtrim 函数删除字符串右侧空格或其他预定义字符;

  3. trim()

    trim 函数删除字符串两侧空格或其他预定义字符;

8.5 其他函数处理

  1. strlen() 获取字符串长度

    例:

     $passwd = "123456";
     if(strlen($passwd) < 8){
         echo "密码不能少于8位";
     }
  2. strtolower() 将字符串转换为小写字母

    例:

     $url = "HTTP://WWW.WENDOWS.COM/ ";
     echo strtolower($url);
  3. strtoupper() 将字符串转换为大写字母

    例:

     $str = "中文 hello world";
     echo strtoupper($str);
  4. strrev() 反转字符串

    例:

     $str = "hello world";
     echo strrev($str);
  5. nl2br() 将字符串中换行 (\n) 转换成 HTML 换行标签 (
    )

    例:

     $str = "hello
     world";
     echo nl2br($str);
  6. strip_tags() 删除字符串中HTML XML PHP 标签

    string strip_tags ( string str [, string allowable_tags] )

    可选参数 allowable_tags 指定要保留的标签;

    例:

     $str = "test <a href="http://www.163.com">163</a>";
     echo strip_tags($str);
  7. htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体

    预定义的字符是:

    -|-|-
    :--|:--|:--
    & |(和号) | 成为 &
    " |(双引号)| 成为 "
    ' |(单引号)| 成为 '
    < |(小于) | 成为 <
    > |(大于) | 成为 >

    例:

     $str = "<p> 这是一个段落 </p>";
     echo htmlspecialchars($str);

9. Ajax基础

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script type="text/javascript">
    window.onload = function(){
      var ajax = null;
    if (window.XMLHttpRequest) {
      ajax = new XMLHttpRequest();
    }
    else {
      ajax = new ActiveXObject("Microsoft.XMLHTTP");
    }
    ajax.open('127.0.0.1/lesson3.php?name=xiaopang',true);
    //发送请求
    ajax.send();
    //响应回调
    ajax.onreadystatechange = function(){
      //readyStatue 表明服务器接到响应
      //state 是服务器的状态
      if (ajax.readyStatue == 4 && (ajax.state >=200 || ajax.state<300 ||ajax.state == 304)) {
        document.innerHTML = ajax.responseText;
      }
    }
  }
  </script>
</head>
<body>

</body>
</html>

10.今日学习代码记录(仅作记录作用,无须查看)

<?php
/*
//最常用的 PHP 标记
//标记内部表明是 PHP 环境

//第一个变量
    //以 $ 开头,数字字母下划线组成,并且不能用数字作为变量开头。
    //而且区分大小写。
    $age = 34;
    //引用赋值,可以理解为两个变量用的一块控件
    //我们一般将 “ & ” 叫为取址符
    $age1 = &$age1;
    //输出
    echo($age1);

    //变量的变量
    $var_1 = "hello";
    $$var_1 = "world";
    echo $var_1;    //hello
    echo $$var_1;    //world
    echo $hello;    //world    变量的变量也可以成为变量 var_1

    //识别 HTML 标签
    echo "<br />";

    //
    echo $_SERVER["SERVER_NAME"];

    */
//=======================================================================
//                                超全局变量
//=======================================================================
    //$_GET 获取 get 请求的参数(前后端命名一定要一致)
    // echo $_GET["username"];
    // echo $_GET["password"];
    //$_POST 获取 post 请求的参数
    // echo $_POST["username"];
    // echo $_POST["password"];

//=======================================================================
//                                常    量
//=======================================================================

    //自定义常量,在其他语言里面页脚宏定义
    // define('PI', 3.1415928);
    // echo PI;

    //魔术常量
    // echo __LINE__;    //显示当前代码是多少行

//=======================================================================
//                                数据类型
//=======================================================================

    //单双引号的区别
    // $name = "pang";
    //双引号中默认是不识别的,判定为字符串
    // echo "my name is $name";
    //单引号不会替换变量,默认内容是字符串
    // echo 'my name is $name';

    //如果你想要将一个变量替换至字符串中,你需要使用 {} 去包裹起来内容
    // echo "my name is {$name}asdasdasdasda";

    //定界符    结束符 以'<<<EOD'开头,以‘EOD’结尾,并且结尾符号一定要存在于换行的开头
    //主要用于  分隔字符
//     $str = <<<EOD
//     duang,duang,duang
// EOD;
//     echo $str;    

    //字符串的转义
    // $str = "str\$";
    // echo $str;

    //自动类型转换
    //字符串与数字相加,字符串转化规则,从第一位去取,直到取到一个非数字时结束。
    // $name = "pang";
    // $age = 18;
    // echo $name.$age;    //pang18
    // echo $name+$age;    //18 从开始取数字转化为整型,到非数字时停止

    //类型相关函数
    //gettype() 获取数据类型
    // $str = "nihao";
    // $age = 19;
    // echo gettype($str);
    // echo gettype($age);

    //is_interger() 确定该数据是否是某类型
    // $str = "nihao";
    // echo is_integer($str);
    // echo is_string($str);

    //var_dump() 打印详细数据信息
    // $str = "nihao";
    // var_dump($str);    //string 5 "nihao"

//=======================================================================
//                                运算符
//=======================================================================
    //拼接赋值    $str = $str.20
    // $str .=20;
    // echo $str;

    //递增递减
    //++在前,执行运算前先自身加一
    //++在后,先运算完成,再加一
    // $age1 = 20;
    // $age2 = $age1++;
    // $age3 = ++$age1;
    // echo $age1;    //20
    // echo $age2;    //20
    // echo $age3;    //22

    //三目运算符
    //前面表达式为真,则取前面的值,如果为假,则去后面的值
    // $a = 20;
    // $b = 15;
    // $is_ture = $a > $bTRUE:FALSE;
    // echo $is_ture;
?>
<?php
//=================================================
//                        循环
//=================================================
//分支结构
//if..else..
// if (判断语句) {
//     # code...
// }elseif (判断语句) {
//     # code...
// }
// else{
//     # code...
// }

//下面来看一个很特殊的小栗子。
//我们在 if 内部去写一个永远成立的式子。
//之后我们在内部去做++,但是我们出来之后,
//发现出来 A 的值 是 1. B 的 值里面是 31.
//我们也能看见 a 的类型变成了 BOOL 类型。
//所以我们怎么++ , a 的值还是1,大家需要注意一下(判断使用 == 式子就正确了)
//    $a = $b = 30;
//
//    if ($a = 30 || $b = 30){
//        $a++;
//        $b++;
//    }
//    var_dump($a);
//    var_dump($b);
//    echo $a;
//    echo "<hr>";
//    echo $b;

//switch case
// switch ($a) {
//     case '30':
//         # code...
//         echo "变量 $a 等于 30,走这里";
//         break;

//     default:
//         # code...
//         echo "上面结果全部不符合才走这里"
//         break;
// }

//for
//    for ($i=0; $i < 10; $i++) {
//        # code...
//        echo "我是第{$ i}次<br>";
//    }

//跳出循环 break  continue
//    for ($i=0; $i < 10; $i++) {
//        # code...
//        if($i == 5){
//            echo "我是第{$ i}次<br>";
//            continue;
//        }
//        echo "我是第 {$i}次循环";
//    }
//
//=================================================
//                        函数
//=================================================
//function + 函数名 +(参数列表){
//        函数体
//}
//function sum($a,$b){
//    echo $a + $b;
//    //return 的函数返回值
//    return $a + $b;
//}
//sum(3, 5);

//函数参数有默认值,如果调用的时候不传值,会直接使用默认值
//function funName($value='345'){
//    echo $value;
//}
//funName();
//递归函数
//自己调用自己,并且首先返回最后一次结果,之后依次返回
//function fun($n) {
//    if ($n == 1) {
//        return 1;
//    }
//    $number = $n * fun($n - 1);
//    return $number;
//}
//echo fun(5);

//变量分为局部变量,全局变量和静态变量
//function sum($a){
//    //局部变量 : 函数调用结束后立马释放
//    $b = 5;
//    $b++;
//    echo $b;
//    
//    //静态变量 : 只能初始化一次,静态变量不会立马释放
//    static $c = 10;
//    $c++;
//    echo $c;
//}
//sum();
//sum();
//sum();
//=================================================
//                        变量
//=================================================
//全局变量 : 声明在函数外,全局都可以访问
//$name = "asdasda";
//function dosomething(){
//    echo $GLOBALS['name'];
//}
//=================================================
//                        数组
//=================================================
//关联数组,类似于 oc 中的字典
//$arr = array('name' => 'xiaopang','age' => 'woman') ;
////索引数组
//$arr_1 = array('23','4234','234');
//
//echo $arr['name'];
//var_dump($arr);
//echo $arr_1[0];
//var_dump($arr_1);
////使用系统函数初始化创建数组
////直接赋值生存数组,索引值可以自定义
//$arr_2[0]="asd";
//var_dump($arr_2);
//
//$arr_3['name'] = "qweqwe";
//var_dump($arr_3);
//
//只能识别数字或者字符,字符串默认取第一位,如果是英文字符,则默认是 0 
//$lists = range(100, 1);
//print_r($lists);        //打印数组
//unset($lists);        //释放数组
//
//foreach 遍历数组
//$arr = array('name'=>'xiaopang','age'=>18);
//foreach($arr as $key =>$value){
//    echo $key,$value;
//}
//
//数组的排序
//$arr = array('name'=>'xiaopang','age'=>18,'height'=>187);
////sort()排序 如果是字符串就按照 ascii 排序,如果是数字就直接排序,如果有数字,有字符串,数字大于字符串,且字符串按照 ascii 排序
//$arr_2 = sort($arr);
//print_r($arr);
////rsort()降序
////ksort()按照键值 升序排序
////ksort()按照键值 降序排序
////=================================================
////                        字符串
////=================================================
////查找字符串,并且返回当前下标,区分大小写
//$s = strpos("asdaasdasdasd", 'asd');
//echo $s;
////stripos 和 strpos 功能一致,只是不区分大小写
//
////字符串替换
//$str1 = str_replace('3g', 'keji', $str);
//echo $str1;
////str_ireplace($search, $replace, $subject) 和  str_replace 功能一致,只是不区分大小写
?>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多