Day 40 (PHP)

1.阵列抓值

(1)打开$person的'programs'(key) 抓 $language(vaule)

     <?php
     $person['name'] = 'Brad';
     $person['age'] = 18;
     $person['weight'] = 80;
     $person['programs'] = ['PHP', 'Java', 'C', 'Swift'];

     foreach ($person['programs'] as $language) {
         echo "{$language}<br />";
     }

(2)$p 抓 $key(key) 及 $value(vaule)

     foreach ($p as $key => $value) {
         echo "{$key}点出现{$value}次<br />";
     }

2. 网页内的所有key及vaule,环境变数: $ _ SERVER

想知道这是甚麽,可以跑这个回圈慢慢拆(可以把Array都打开)

   foreach ($_SERVER as $key => $value) {

    //有array继续打开
    if (gettype($value) == 'array') {
        echo "{$key} => ";
        foreach ($value as $kk => $vv) {
            echo "{$kk} : {$vv}<br />";
        }
        echo "===<br />";
    } else {
        echo "{$key} : {$value}<br />";
    }
}

$ _ 还有很多变数可以用ex:$_GET、$_COOKIE...


3.函数

(1)看全部有几个? echo func_num_args()

    sayHelloV4('Brad', 'Eric', 'Amy');

    function sayHelloV4()
    {   
        echo func_num_args()  //3
    }

(2)第几个是谁? echo func_get_arg(0)

    function sayHelloV4()
    {   
         echo func_get_arg(0);  //Brad
         echo func_get_arg(1);  //Eric
         echo func_get_arg(2);  //Amy
    }

(3)看全部,使用foreach

    $args = func_get_args();
    function sayHelloV4()
    {   
        foreach ($args as $name) {
        echo "Hello, {$name}<br />";
        }
    }

(4)与var_dump 的差异

    function sayHelloV4()
    {   
        var_dump($args);
    }

    //array(3) { [0]=> string(4) 
    //"Brad" [1]=> string(4) "Eric" [2]=> string(3)
    // "Amy" } Hello, Brad

4.PHP字串的Function - strpos 找字串位置

https://www.php.net/manual/en/ref.strings.php

    $mystr = 'abcdefg';
    $findme = 'd';

    if (strpos($mystr, $findme) !== false) {       // !== false 全不等
                                                   //(TURE,非0、NULL...)
        echo "find: " . strpos($mystr, $findme);   //.字串相加
    } else {
        echo "not found";
    }

5.强制进IF判断的方法

!== false
全不等於,才不会进来判断

    if (strpos($mystr, $findme) !== false) {     
        echo "{$mystr}.{$findme}<br>";
        echo "find: " . strpos($mystr, $findme);  //.字串相加
    } else {
        echo "not found";
    }

6.PHP字串的Function

    if (strlen($id) == 10) {            //长度=10
        if (strpos('ABCDEFGHIJKLMNOPQRSTUVWXYZ',substr($id, 0, 1)) !== false)

        // strpos $id第一码(substr)的字在字串的第几个位置(回传int)
        // substr 从0开始 , 第一码 
        // 如果!== false(0)
        // 输出OK

        {
            echo 'ok';
        } else {
            echo 'X2';
        }
    } else {
        echo 'X1';
    }

7.PHP - 正规表示法 - preg_match

https://www.php.net/manual/en/function.preg-match
https://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F

        $id = 'A123456789';
        $regex = '/^[A-Z][12][0-9]{8}$/';  //[12]1或2 {8}8码
        
        // $id 是否符合 $regex 

        if (preg_match($regex, $id)) {
            echo 'OK';
        } else {
            echo 'XX';
        }

8.引用PHP已经写好的函式include

        include "bradapis.php";
        include "myphp/bradapis.php";  //可以从不同资料夹

9.写程序逻辑:

举例:身分证号码随机产生
4.的限制最多,所以以他为依归,其他1.2.3.例子引用4.
这样就只维护4.就行了~

1.乱数

    function createTWIdByRandom()
    {
        $gender = rand(0, 1) == 0;
        return createTWIdByGender($gender);
    }

2.指定性别

    function createTWIdByGender($gender = false)
    {
        $letters = 'ABCDEFGHJKLMNPQRSTUVXYWZIO';
        $area = substr($letters, rand(0, 25), 1);
        return createTWIdByBoth($gender, $area);
    }

3.指定地区

    function createTWIdByArea($area = 'B')
    {
        $gender = rand(0, 1) == 0;
        return createTWIdByBoth($gender, $area);
    }

4.性别跟地区都指定

    function createTWIdByBoth($gender, $area)
    {
    }

10.PHP送资料用submit 非button

    <input type="submit" value="Register" />

11.$_REQUEST 与 $_GET 与 $_POST 差异

    $_GET 只收 method="get"     密码显示浏览器,好处:开发看的到
    $_POST 只收 method="post"   密码不显示
    $_REQUEST 收 method="get" method="post" 

12.File System 档案系统 API

https://www.php.net/manual/en/refs.fileprocess.file.php

用phpinfo();
检查自己PHP的File System有没有安装或是目前版本


13.内部档案相关

opendir - 开启档案
https://www.php.net/manual/zh/function.opendir.php
readdir - 读取档案(只读同一层)
https://www.php.net/manual/zh/function.readdir.php
https://ithelp.ithome.com.tw/upload/images/20210805/20137684Z56oWsknri.png

closedir - 关闭档案
https://www.php.net/manual/zh/function.closedir

exit - 读不到档案会显示
https://www.php.net/manual/zh/function.exit


14.while()内,只能丢一个bolling值(0、1、TURE、FALES)

    while ($row = readdir($fp)) { 
      }

<<:  unity 物体按住key后移动和转向

>>:  在本机浏览Open API格式的文件

#16 JS: loop - Part 1

while statement If the statement is true, the code...

[DAY9] Boxenn 实作 Entity 与 Value Object

隆重介绍 Boxenn! 它是我们专门用来在 legacy code 中导入 DDD 的套件,之後会...

来做一个色码转换器吧!

前言 今天来做一个色码转换器~ 我们先认识色码之间的关系,拆解步骤後再一步步完成吧! 颜色表示的方法...

【Day.29】React进阶 - 以Redux Thunk处理非同步资料流

很多时候,我们的state必须要透过HTTP Request从後端取得。然而发送Request常用的...

[Golang]go test指令说明-心智图总结

1. -cpu a. 用途: 模拟程序在不同CPU核心数的计算机,效能表现。 b. 用来设定测试执行...