前端向后台的华丽转身 — PHP基础篇

这一次,本K带大家来看一下关于PHP中数组、字符串的一些注意事项和函数(方法)。

一、PHP中的数组

(一)PHP中的数组简介

数组类型是PHP两种复合数据类型之一。根据下标的不同,可以将PHP中的数组分成关联数组和索引数组:前者指下标为字符串格式,每个下标字符串与数组的值一一对应;后者下标为数字,与JS中的数组下标相同,但在一些规则上与JS相差甚远(后述)。

关于关联数组与索引数组,以及其与JS中数组的某些不同,有如下五条大致可以概括:

  1、数组中,可以同时存在索引数组和关联数组

    array(1,2,3,"four"=>4);

  2、数组中,所有的索引数组,如果不加指定,会去掉关联项,默认增长(即关联数组不占索引位)

    array(1,2,3,"four"=>4,5,6); --> 1,2,3,5,6的索引分别为0 1 2 3 4

  3、如果关联数组的key,是纯十进制整数字符串,则会将此数字转为索引数组的索引值

    array(1,2,3,"9"=>4); --> 1 2 3 4 的索引分别为 0 1 2 9

  4、如果手动指定关联数组的key,索引数组的下标,如果与前面已有的key或下标重复,则后指定的值会覆盖之前的值

    array(1,2,"one"=>5,"one"=>6) --> 打印数组为 1 2 "one"=>6

  5、如果手动指定索引数组下标,则后续自增长下标,会按照之前下标最大值,依次增长

    array(1,2,3,"9"=>4,5); --> 1 2 3 4 5 的索引分别为 0 1 2 9 10

其次,是PHP中数组的声明方式。PHP中的数组声明方式有三种(如下列代码),分别是直接赋值声明、array声明、[]声明。需要注意的是,第三种声明方式实在PHP5.4版本以后才加入进来的,使用时一定要先核对好所使用的PHP版本。

$arr[] = 4;  // 直接赋值声明
$arr = [1,2,3,4]; //[]声明
$arr = array(1,2,3,4); //array声明

PHP中数组的遍历主要有4种方式,分别是使用for循环遍历数组、foreach循环遍历数组、使用list() each() while遍历数组、使用数组指针遍历数组。详细方法K会在另一篇博文中讲述,敬请期待。

最后,是PHP数组涉及到的几个超全局数组。所谓超全局,就是可以在任何地方、任何作用域不用声明,直接可以使用的几个系统数组,其存在是因为PHP作用域中变量范围限制(PHP这点真的坑)。下面一段笔记代码,给大家做个参考。

/*
     * 【超 全局 数组】
     * 超全局数组、超全局变量、预定义数组、预定义变量 --> 说的都是它
     * PHP给我们提供了一组包含强大功能的超全局数组。可以在任何地方、任何作用域不需声明,直接使用!!不受任何作用域限制。
     *
        1  服务器变量: $_SERVER
     * 返回包含浏览器头信息,路径,脚本以及服务器系统等各种信息!
        2  环境变量:$_ENV
     * 将系统环境变量,转变为PHP中的数组。就是$_ENV;
     * PHP默认是关闭此全局数组的,如果需要使用,需修改php.ini温江中的variable_order="GPSC",改为EGPSC;
     * 但是,修改后会有系统性能损失,官方并不推荐使用。
     * 可以使用getenv()函数取代全局变量,取出每个系统环境变量的值。
     * phpinfo();函数,包含了有关PHP的各种信息,其中ENVIROMENT板块就是系统环境变量,可以使用getevn();取出其中的每一个值。
        !!!!3  HTTP GET变量:$_GET
     * 获取前台通过get方式提交的数据
        !!!!4  HHTP POST变量:$_POST
     * 获取前台通过post方式提交的数据
        5  request变量:$_REQUEST
     * 包括了$_GET/$_POST/$_COOKIE三者
     * 由于可能同时包含get post,可能导致键冲突,并且效率也不高,所以不常使用!!!
        6  HTTP文件上传变量:$_FILES
     * 通过HTTP POST方式上传到当前脚本的项目的数组
        7  HTTP Cookies:$_COOKIE
     * 取到页面中的cookie信息
        !!!!8  Session变量:$_SESSION
     * 取到保存在session中的信息
        9  Global变量:$GLOBALS
     * 包含上述8个全局数组
     * 还可以给$GLOBALS数组追加下标,创建全局变量
     */

(二)PHP数组中的常用函数

谈到PHP中数组的函数,首先需要给各位从JS转来的同志们提醒一下,PHP中的数组的“函数”这种叫法,跟JS中数组的“方法”是一样的,都是指对数组进行处理的行为。函数这一部分因其内容的庞大性,首先推荐大家去看一下帮助文档(http://www.w3school.com.cn/php/index.asp)。下面是K记录的关于PHP中数组函数的一些笔记,大家可以自行粘贴至编辑器上取消/设置注释来直接体验。

$arr = ["one"=>1,4,7,"9"=>10,"haha"=>"haha",4];

    // 返回数组所有的值(数组)
    var_dump(array_values($arr));

    // 返回数组所有的键(数组)
    var_dump(array_keys($arr));

    // 检测数组中是否包含某个值(布尔)
    #参数# 需要查询的值,数组[,true(===)/false(==)]
    var_dump(in_array(1,$arr,true));

    // 交换数组中的键和值(数组)
    var_dump(array_flip($arr));

    // 翻转数组(数组)
    #参数# 数组[,true(保留原有索引数组的下标与值的匹配)/false(只翻转值,键不保留)]
    #无论ture/false,都不会影响关联数组,关联数组总会保留#
    var_dump(array_reverse($arr,TRUE));

    // 统计数组元素个数(整形)
    var_dump(count($arr,0));

    // 统计数组中每个值出现的次数(数组)
    var_dump(array_count_values($arr));
    #    !!不借助系统函数实现array_count_values的功能
    /* 思路
     * 1、有一个空数组:键 => 原数组的值 值 => 原数组每个值出现的次数
     * 2、遍历原数组,取出原数组中的每一个值
     * 3、检测取出的值是否在新数组中有一个同名的键
     *         如果有:说明找到了与现在新取值相重复的值,那么就把新数组中这个键对应的值+1;
     *         如果无:说明截止现在,还没有与新取值重复的项,那么就在新数组中新建一个同名的键,并把值为1。
     */
/*    $arr1 = [0,2,5,7,9,4,2,1,5,7,1,0,1,1,1,1,1,2,4,4,5,7,7,4,3,2,4,6,8,5,3];
    $arr2 = array();
    foreach($arr1 as $key1=>$item1){
        $isHas = FALSE; // 标志变量!!!
        foreach($arr2 as $key2=>$item2){
            if($key2==$item1){
                $arr2[$item1]++;
                $isHas = TRUE;
            }
        }
        if(!$isHas) $arr2[$item1]=1;
    }
    var_dump($arr2);*/

    // 移除数组中重复的值
//    var_dump(array_unique($arr));

    //过滤数组中的每一个值
    /*
     * 不传回调函数:过滤掉所有空值(0、""、null、false、"0"、[])
     * 传回调函数:如下
     */
//    var_dump(array_filter($arr,function($num){
//        if($num>4){
//            return TRUE;
//        }else{
//            return FALSE;
//        }
//    }));

    //通过回调函数,对数组的每一个值,进行处理操作。
    //执行时,会给回调函数传递给两个参数,分别是value key,然后可以在回调函数中,对值和键进行处理!
    //但是,牵扯到修改值的时候,必须要传递地址!
//    var_dump(array_walk($funcname))

    //
    /*将数组的每个值交由回调函数进行映射处理
    array_map():第一个参数是一个回调函数,第二个参数起,是>=1个数组
    有几个数组,可以给回调函数传几个参数,表示每一个数组的一个value;
    可以对返回的value进行处理,处理完后通过return返回,那么新数组对应的值就是return回去的值*/
    $a =[1,2,3,4,5];
    $b =[1,2,3,4];
    var_dump(array_map(function($value1,$value2){
            return $value1+$value2;
        }, $a,$b));

    /*
     * array_walk与array_map的异同
     * 两者都能遍历数组,通过回调函数,重新处理数组的每一个值
     * 不同点
     * 1、walk只能传一个数组,回调函数接受这个数组的值和键;map可以传多个数组,回调函数接受每个数组的值
     * 2、walk直接修改原数组;map不修改原数组,将新数组返回
     * 3、walk可以给回调函数传递一个其余参数;map只能传数组的值
     * 4、处理方式上,walk如果需要改掉原数组的值,需在回调函数中传递地址,直接修改变量的值;map是通过将新的值,用return返回,即可修改新数组的值。
     */
    /*
     * 可以传入第二个参数,控制以何排序。第二个参数传1,表示按照数字排序;传2,表示按照ascii排序;默认自动检测
    sort -- 对数组排序(升序)
    rsort -- 对数组逆向排序(降序)
    usort --  使用用户自定义的比较函数对数组中的值进行排序
     * 下述三个函数常用于关联数组排序,用法同上
    asort -- 对数组进行排序并保持索引关系(关联数组排序)
    arsort --  对数组进行逆向排序并保持索引关系
    uasort --  用户自定义的比较函数对数组进行排序并保持索引关联
     *
    ksort -- 对数组按照键名排序
    krsort -- 对数组按照键名逆向排序
    uksort --  使用用户自定义的比较函数对数组中的键名进行排序
     * 自然排序,数字按照0-9,字母按照a-z进行排序
     * 下面两个函数,都会按照自然排序,并且排序时会保留键值关联
    natsort --  用“自然排序”算法对数组排序
    natcasesort --  用“自然排序”算法对数组不区分大小写字母排序
     * 对多个数组或多维数组进行排序。
     * 第一个参数:第一个数组必选,之后都是可选参数
     * SORT_STRING/SORT_NUMBERIC按照字符串还是数字
     * SORT_DESC/SORT_ASC升降序排列
     *
     * 排序规则,先排第一个数组,之后的数组,按照与第一个数组对应的关系,一列一列的移动
     *
     * 如果对多个数组排序,需保持多个数组长度一致
    array_multisort -- 对多个数组或多维数组进行排序
     */

    $arr = [1,2,3,4,9,7,6,10,22];

//    sort($arr);

//    rsort($arr);

//    usort($arr,function($a,$b){#同JS中数组sort
//        return -$a+$b;
//    });

//    asort($arr);

    /*[不更改原数组]
     * array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )
     * 参数一: 数组,必选
     * 参数二:从第几位开始截选,必选,负数表示从右边第几位(按照数组的默认顺序,包含关联和索引,而非下标)
     * 参数三:截取长度,可选,默认全选
     * 参数四:表示是否保持键值关联,可选,默认索引重拍,为false,true为保持关联
     * */

//    $arr1 = array_slice($arr,3,2);
//    var_dump($arr1);

    /*[更改原数组]
     * array array_splice ( array &$input , int $offset [, int $length = 0 [, mixed $replacement ]] )
     * 返回值:被删掉的数组
     * 参数一:数组的地址,会改变原数组
     * 参数二:从第几位开始删或替换
     * 参数三:删除或替换的长度
     * 参数四:为空表示删除操作,传入内容表示替换操作的新值
     * */
    $arr2 = array_splice($arr,4);
    var_dump($arr2);

    /*
     * array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
     * 参数一:作为键的数组
     * 参数二:作为值的数组
     * 【两个数组必须保持一致,否则警告,返回false】
     */

    /* 合并多个数组
     * array array_merge ( array $array1 [, array $... ] )
     * 合并多个数组,如果多个数组中,出现同名的关联键值,则后面的会覆盖前面的
     * */

    /* 两个数组取交集
     * array array_intersect ( array $array1 , array $array2 [, array $ ... ] )
     * 多个数组取交集,结果会保留第一个数组的键值关联比配
     * */

    /* 两个数组去差集
     * array array_diff ( array $array1 , array $array2 [, array $... ] )
     * 取出多个数组中,在第一个数组中包含,但在其他数组中不包含的值,保留第一个数组的键值关联
     * */

    /*
     * mixed array_pop ( array &$array )//删除数组最后一个值,且返回这个值
     * int array_push ( array &$array , mixed $var [, mixed $... ] )//数组的最后放入一到多个值,返回处理后数组的元素个数
     *
     *     mixed array_shift ( array &$array )//删除数组第一个值,返回这个值
     * int array_unshift ( array &$array , mixed $var [, mixed $... ] )//数组开头放入一到多个值,返回处理之后的数组元素个数
     * */

    /*
     * mixed array_rand ( array $input [, int $num_req = 1 ] )
     * 随机抽取数组中的一到多个键名,二参数为空,表示抽一个,传入数子表示抽几个
     * */

    /*
     * bool shuffle ( array &$array )
     * 随机打乱数组顺序,直接修改原数组
     * */
    

二、PHP中的字符串

(一)PHP中的字符串简介

PHP中的字符串是PHP四大基础数据类型之一。

首先,来跟大家谈一下PHP中字符串的声明方式。PHP中字符串的声明方式有三种,分别是通过""、‘‘、标识符来进行声明(详述可见http://www.cnblogs.com/wk1102/p/6886041.html)。

其次,来跟大家以代码笔记的形式着重说一下PHP中的各种输出函数,笔记如下。

    /*
     * 【各种输出函数】
     * 1、echo(纯输出,无返回):直接将内容输出。可以是函数用法,也可以是指令用法;指令用法可以打印多个参数(逗号分割),函数用法只能打印一个参数。
     * 2、print(基本不用):有函数写法与指令写法,但两个都不能传多个参数;有返回值,返回值总是为true。
     * 3、print_r:打印数组和对象时,会用一定的格式显示键和值的匹配。print_r打印数组时,会将数组指针移向最后一位。
     * 4、var_dump:调试专用,显示打印的类型、值等信息,打印数组对象时,会缩进显示键值匹配,可以传入多个参数,同时打印。
     * 5、die:等同于exit,输出信息并且结束当前脚本,可以不输出信息。
     * 6、printf:打印内容并将变量进行格式化输出。第一个参数:需要打印的字符串内容,可以带多个占位符;第二到多个参数:与占位符一一对应的变量。将后面的变量按照占位符的格式要求依次输出。
     * 7、sprintf:使用同printf一样,只不过不是输出语句,而是将转换之后的结果赋给一个变量。
     *
     * [常用占位符]
        %%    返回百分比符号
        %b    二进制数
        %c    依照ASCII值的字符
        %d    带符号十进制数
        %e        可续计数法(如1.5e3)
        %u    无符号十进制数
        %f或%F     浮点数
     * -->  浮点数,默认保留六位小数
     * 百分号和f之间可以插入数字表示精确程度。
     * 数子的整数部分,表示精确的总宽度(整数+小数+小数点的总位数)。
     * 数字的小数部分表示保留几位小数,进行四舍五入保留。
     * 如果设置的宽度小于实际宽度,设置无效;如果设置的宽度大于实际宽度,左边空格补位。
     * 例如:$num = 10.12345;
     * printf("123%10.2f",$num);   -->           10.12
     * printf("123%010.2f",$num); -->  0000010.12
        %o    八进制数
        %s    字符串
        %x或%X  十六进制数
     */

(二)PHP中的常用函数

这里,K的建议同上述数组是一样的,同样推荐大家首先阅读帮助文档(http://www.w3school.com.cn/php/index.asp)。下面,K依然以代码笔记的方式来给同志们介绍一下PHP中的常用函数。

    /*
     * trim():删除字符串两端的空格;
     * ltrim():删除字符串左端的空格;
     * rtrim():删除字符串右端的空格;
     *
     * 可以传入第二个参数,表示删除两边的相关字符。
     * 从字符串两边开始依次向内查找第二个参数中出现的字符,只要发现就删除,直到遇到第一个没有出现的字符为止。
     * 第二个字符常写为 " \t\n\r\0\x0B",用于把各种空格相关的符号全都删掉。
        " " (ASCII 32 (0x20)),普通空格符。
        "\t" (ASCII 9 (0x09)),制表符。
        "\n" (ASCII 10 (0x0A)),换行符。
        "\r" (ASCII 13 (0x0D)),回车符。
        "\0" (ASCII 0 (0x00)),空字节符。
        "\x0B" (ASCII 11 (0x0B)),垂直制表符。
     *
     * */

    $str = "  1  2  3  4  ";
    echo $str."\n";
    echo ltrim($str)."\n";
    echo rtrim($str)."\n";
    echo trim($str)."\n";
    echo trim($str," 43")."\n";

    /*
     * str_pad():将字符串填充到指定长度;
     * 参数一:需要填充的字符串,必选。
     * 参数二:需要将字符串填充到多长,必选。
     * --->如果长度小于等于字符串,则不会发生任何作用。
     * 参数三:需要填充的文本,可选。
     * --->默认用空格填充。
     * 参数四:在字符串的哪边填充,可选。
     * --->STR_PAD_BOTH:2
     * --->STR_PAD_LEFT:0
     * --->STR_PAD_RIGHT:1
     * --->默认填充在右边,如果选BOTH,则先从右边开始填。
     */

    $str1 = "abcd";

    echo str_pad($str1, 11,"12",STR_PAD_BOTH);
    echo str_pad($str1, 11,"12",STR_PAD_LEFT);
    echo str_pad($str1, 11,"12",STR_PAD_RIGHT);

    /*
     * strtolower():将所有字符转成小写
     * strtoupper():将所有字符转成大写
     * 上述两个常用于不区分大小写比对。
     *
     * ucfirst():将字符串首字母转成大写
     * ucwords():将字符串每一个词首字母转成大写
     * 后两个只负责转首字母,并不管其他字母的大小写,如果只需要首字母大写,通常配合strtolower()先将字母转成小写。
     * */

    /* 与HTML相关的函数:
     * 1、nl2br():将字符串中的所有换行符,转为<br>
     * 2、htmlspecialchars():将HTML中的符号,转换为实体内容。
     *       & :&amp;        ":&quot;
     *      ‘:'     <:&lt;
     *      >:&gt;      空格:&nbsp;
     * 转成特殊字符后,无需再转回,浏览器会自动解析为对应的标签符号。
     * 3.将字符串中的所有HTML标签删除;
     * 参数1:需要过滤HTML标签的字符串;
     * 参数2:允许存在的HTML标签:strip_tags($str,"<b><s><u>");只允许str这个字符串中,存在<b><s><u>三个标签,其他的全部删除。
     *
     * */
/*【常用字符串函数】
 *1.strrev($str):将字符串翻转;"12345"-->"54321";
 *2.strlen($str) :获取字符串字符个数,中文=三个字符
 *mb_strlen($str):测量多字节字符串的长度,不论中英文均算一个长度;
 * {PHP中,很多字符串函数,都有“mb_”的前缀,专门用于操作中文多字节字符串}
 *3.number_format():将一个浮点数,要求格式化为一个字符串。
 *             参数1:需要格式化的浮点数;必选。
 *             参数2:保留几位小数(四舍五入),默认不保留;
 *             参数3:小数点的显示符号,默认为“.”;
 *             参数4:千位符的显示符号:默认为“,”;
 *4.md5()/sha1():分别使用md5加密算法以及sha1加密算法对字符串进行加密操作;
 * */

$str="abcdefg哈哈哈";//一个汉字三个字符,一个字符一个字符翻转;
echo strrev($str);
echo "<br/>";
echo strlen($str);//字符串长度16
echo "<br/>";
echo mb_strlen($str);//字符串长度10
echo "<br/>";
echo number_format(12399.4567,4,"/","-");
echo "<br/>";
echo md5($str);
echo "<br/>";
echo sha1($str);
echo "<br/>";
echo sha1($str)=="527e8bad76c863b8903c51f7eedad006678d5f96";
/*【字符串的比较】
 * 1.可以用比较运算符比较:
 * < > ==:如果两边都是字符串,则比较首字母ASCII值,
 *        如果一边是数字,则将字符串转为数字后再比对!
 *(重要) 2.strcmp("$str1","$str2"):比较两个字符串,区分大小写;$str1>$str2-->1;$str1<$str2-->-1  $str1==$str2-->0
 * 3.strncmp("$str1","$str2",int):比较方式与strcmp完全相同,只是多了一个必填的参数3,表示比较字符串的长度,strncmp("Asdsa", "adsa",2),只比较前两个字符串的前两个字符,如果比较汉字字符串,一个汉字占三个字符;
 *(重要) 4.strcasecmp ("$str1","$str2")比较全串字符串,不区分大小写;
 * 5.strnatcmp ("$str1","$str2"):将字符串按照自然排序算法进行排序比对;
 *   strnatcmp ("10","2"):10>2,返回1;
 *   strcmp("10", "2"):按照ASCII排序,1<2,返回-1;两者相等时都=0,没有任何差别。
 *6. similar_text():返回两个字符串的相似度(两个字符串匹配字符的数目);
 * */
 var_dump("a"<1);//"a"-->0;
 var_dump(strcmp("A", "a"));//-1
 var_dump(strcmp("5", "5"));//0
 var_dump(strncmp("Aaer", "Aacc",2));//0
 var_dump(strncmp("张与", "张三",2));//0
 var_dump(strcasecmp ("abcd","ABCD"));//0
 var_dump(strnatcmp ("i10","i2"));//1
 var_dump(similar_text("123","234"));//相同字符的长度
 /*【常用字符串操作函数】
  * 1.explode():使用指定分隔符,将字符串分隔为数组;
  *  参数1:使用什么分隔符;
  *  参数2:需要分隔的字符串;
  *  参数3:可选,将字符串最多分为几份,如果小于实际分数,则前n-1正常分,最后一个包含所有剩余字符串。
  * 2.preg_split():通过一个正则表达式分隔字符串,参数同上,第一个参数为正则表达式
  * 3.var_dump(str_split("hahah",2))--->["ha","ha","h"]
  * */
 var_dump(explode(",","s,t,y,u",3));
 var_dump(preg_split("/[\s,]+/","asdh adcjk, asjdi"));
 var_dump(str_split("hahah",2));
 var_dump(mb_split("/[\w]{1}+/","sdsd,t,h"));//不好使
 /*
  * 3.implode() : 将一个一维数组的值转化为字符串
  * 4.substr():截取的字符串;
  *   第一个参数:需要截取的字符串;
  *   第二个参数:从哪个字符开始截取;
  *   第三个参数:需要截取的字符串长度(默认截取到最后)
  * 5.mb_substr():用于截取中文字符串,一个汉字=1个字符;
  *(重要)strstr():别名strchr():查找并返回字符串,是否包含某个子串,如果没有找到返回false
  *   参数1:被查找的字符串,必选;
  *   参数2:需要查找的子串,必选;
  *   参数3:true/false:返回子串前面的部分;返回子串及子串的所有字符串,默认;
  * 6.stristr():功能同上,不区分大小写,
  * 7.strrchr():取到需查找字符在字符串中最后一次出现的位置;
  * 第一个参数:被查找的字符串;
  * 第二个参数:需要查找的字符,如果第二个参数是字符串,则会使用字符串的第一个字符,如果找到,返回该字符串最后一次出现的位置,往后的部分。
  * */
  var_dump(implode("-",["a","b","c"]));//--->"a-b-c";
  var_dump(substr("12345", 2,3));
  var_dump(mb_substr("1234哈哈", 2,4));
  var_dump(strstr("1234", "23",true));
  var_dump(stristr("123哈哈4", "哈",true));
 var_dump(strrchr("ABC123ABC456","AdBC"));
 /* 【字符串查找】
  * 1.strpos() : 返回某个字符串,查找字符串首次出现的位置;
  *   参数1:被查找的字符串;
  *   参数2:需要查找的子串;
  *   参数3:从第几个位置开始查找;
  * 2.strrpos():返回某个字符串,查找字符串最后出现的位置;
  * 3.stripos():不区分大小写。返回第一次出现的位置;
  * 4.strripos():不区分大小写。返回最后一次出现的位置;
  * */
 var_dump(strpos("123AxhBzABC","ABC",1));//8
 var_dump(strripos("123AxhBzABC","abc"));//8
 var_dump(strrpos("123AxhBzABC","ABC",1));//8
 var_dump(stripos("123AxhBzABC","abc",1));//8
 /*【字符串替换】
  * str_replace():将字符串中指定的部分用指定内容替换;
  *    参数1:被替换部分,可以是数组也可以是字符串;
  *    参数2:新内容,可以是数组也可以是字符串;
  *    参数3:原字符串;
  * 共分为三类:1.第一个字符串,第二个字符串;
  *          2.第一个数组,第二个数组:将两个数组一一进行映射替换;
  * ①两个数组长度相等;将两个数组一一进行映射替换;
  * ②第一个数组>第二个数组:第一个数组剩余部分用“”替换(即删了);
  * ③第一个数组<第二个数组:第二个数组剩余的部分不用;
  *          3.第一个数组,第二个字符串:数组的每一个都替换为字符串;
  * */
  var_dump(str_replace("e",",","jasbdheead"));
  var_dump(str_replace(["e","a","d"],",","jasbdheead"));
  var_dump(str_replace(["e","a","d"],[",","/",""],"jasbdheead"));
  var_dump(str_replace(["e","a","d"],[",","/"],"jasbdheead"));
  var_dump(str_replace(["e","a"],[",","/","-"],"jasbdheead"));
  var_dump(str_replace(["e","a","d"],"/","jasbdheead"));
时间: 2024-10-22 18:55:45

前端向后台的华丽转身 — PHP基础篇的相关文章

我的IT梦——web前端开发之软件开发入门C#基础篇(一)

C#编程基础带你走进软件开发 一.开发入门 1.C#=C sharp 了解:源代码→机器代码→计算机→控制台.即是源代码通过编译器编译转换为能够使计算机读懂的机器代码,并通过控制台输出.也就是code→compile→run的过程. 2.我的第一个小程序(Hello,World) 步骤:新建一个文本文档,重命名为MyFirstProgram.txt→在我的电脑中找到C#编辑器csc.exe文件路径并复制→Windows键+R打开运行cmd→输入cd,空格,粘贴路径,回车→继续输入csc,空格,/

揭秘传智播客班级毕业薪资超7k的内幕系列之四----汽车工的华丽转身

---不是本科毕业?不是计算机专业?做过电子厂?做过数控?看传智中专生侃项目,"侃晕"项目经理.从流水线上华丽转身,8.5k高薪再就业 系列三承诺写写上海传智Java六期提前就业的一位同学,为什么写他?由于从他身上我看到了非常多正能量,看到了一个不具备从事IT业基础知识的屌丝怎样不甘于现状怀揣改变生活,提升职业层次的梦想.经历层层"险关",终于选择传智.学有所成,华丽转身,以8.5k较高薪资就业,让"梦想照进现实": 首先介绍下该同学,小陈是中专

野生程序员是指仅凭对计算机开发的兴趣进入这个行业,从前端到后台一手包揽,但各方面能力都不精通的人(转)

本文摘自:<Web 全栈工程师的自我修养> 野生程序员是指仅凭对计算机开发的兴趣进入这个行业,从前端到后台一手包揽,但各方面能力都不精通的人.野生程序员有很强大的单兵作战能力,但是在编入“正规军”之后,可能会不适应新的做事方法. 遭遇“野生程序员” 腾讯公司内部的团队很多,在团队管理上有项目和专业两个维度.也就是说,有些团队是项目维度的,整个团队共同维护一个产品,成员来自不同的职业岗位:有些团队是专业维度的,比如一个组都是前端工程师,维护不同的产品. 因为前端组是设计部最接近后台技术的团队,所

个人网站架构设计(三) - 从设计到前端到后台

在五月份,写过两篇博客,提到了要给自己做个网站,当时人在实习,没太多的时间,只是把大概的思路捋了一番,顺道也买了个云主机(配置比较低,内存才500M).接着返校处理毕业事宜,于是六月也随着同学之间挥泪告别的声音渐渐远去.七月,家里呆着,中旬回公司.想必这也是我近几年最长的一次假期了=. = 一.先说设计 1. 阮一峰的博客 目前我的博客设计是 fork 了 BeiYuu 的主题,然后七改八改,除了主页 BeiYuu 还认得出是他的之外,其他页面已经动了很大的手术,而这些手术灵感都是源自阮一峰阮大

通过AngularJS实现前端与后台的数据对接(二)——服务(service,$http)篇

基础知识 1.service(): 使用service()可以注册一个支持构造函数的服务,它允许我们为服务对象注册一个构造函数. service()方法接受两个参数:   ? name(字符串) 要注册的服务名称. ? constructor(函数) 构造函数,我们调用它来实例化服务对象. 2.$http(): 使用$http()服务可以将应用同来自远程服务器的信息集成在一起. $http服务是只能接受一个参数的函数,这个参数是一个对象,包含了用来生成HTTP请求的配置内容.这个函数返回一个pr

ajax使用json数组------前端往后台发送json数组及后台往前端发送json数组

1.引子 Json是跨语言数据交流的中间语言,它以键/值对的方式表示数据,这种简单明了的数据类型能被大部分编程语言理解.它也因此是前后端数据交流的主要方式和基础. 2.前端往后台传输json数据 第一步,先应该定义一个JSON对象或JSON数组.json对象是“var jsonObj={“name1”:“value1” , “name2”:“value2” , “name3”:“value3”,…};”的格式定义,而json数组则是以中括号"[ ]"包裹多个json对象的格式定义,如

C# 加密–RSA前端与后台的加密&amp;解密

1. 前言 本问是根据网上很多文章的总结得到的. 2. 介绍 RSA加密算法是一种非对称加密算法. 对极大整数做因数分解的难度决定了RSA算法的可靠性.换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠.假如有人找到一种快速因数分解的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降.但找到这样的算法的可能性是非常小的.今天只有短的RSA钥匙才可能被强力方式解破.到2016年为止,世界上还没有任何可靠的攻击RSA算法的方式.只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的

通过AngularJS实现前端与后台的数据对接(一)

最近,笔者在做一个项目:使用AngularJS,从而实现前端与后台的数据对接.笔者这是第一次做前端与后台的数据对接的工作,因此遇到了许多问题.笔者在这些问题中,总结了一些如何实现前端与后台的数据对接的方法,希望与大家分享. 在开始进行前端与后台的数据对接前,首先要做到以下几点: 1.先要了解页面哪里是需要后台提供数据的(即:哪里是需要接接口的) ps:很明显,表格里的数据就是要向后台发送请求,从数据库里获取页面需要显示的数据 2.要理解接口里的每一个字段的含义 ps:一般而言,前端工作者都可以根

[转载]前端工程——基础篇

特别声明:本文转载@云龙的<前端工程——基础篇>,感谢@云龙的分享. 喂喂喂,那个切图的,把页面写好就发给研发工程师套模板吧. 你好,切图仔. 不知道你的团队如何定义前端开发,据我所知,时至今日仍然有很多团队会把前端开发归类为产品或者设计岗位,虽然身份之争多少有些无谓,但我对这种偏见还是心存芥蒂,酝酿了许久,决定写一个系列的文章,试着从工程的角度系统的介绍一下我对前端,尤其是Web前端的理解. 只要我们还把自己的工作看作为一项软件开发活动,那么我相信读过下面的内容你也一定会有所共鸣. 前端,是