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
strlen 取得长度https://www.php.net/manual/en/function.strlen.phpsubstr - Return part of a string
https://www.php.net/manual/en/function.substr.php
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
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)) { }