最近,想学一门脚本语言,
所以初学PHP,
作一些比较基础的语法总结
变量:$
//integer:
$i = 2468; // 十进制
$i = -1357; // 负数
$i = 0123; // 0 八进制
$i = 0x456; // 0x 十六进制
//float:
$f = 12.34; // 1.2 X 10^3
$f = 1.2e3;
//string:
$s1 = "PHP string";
$v = "string";
$s2 = "PHP$v"; //输出PHPstring
$s3 = "PHP\$v" //输出PHP$v
//array:
$arr = array('spring','summer','fall','winter');
echo $arr[0];
$sys = array(
"server"=>"Apache2",
"os"=>"ubuntu",
"db"=>"MySQL",
);
echo $sys["server"];
echo "
";
echo $sys["db"];
//可强转:
$foo = 10;
$foo = (boolean) $foo;
//可变变量:
$i = "abc";
$$i = "xyz"; //等价于:$abc = "xyz";
常量:define
define(PHP,"best language");
for循环:
define(PI,3.14);
for($r=1;$r<=10;$r++){
$area = PI * $r *$r;
if($area > 100)
break;
echo "r = $r , area = $area";
echo "
";
}
函数:function 区别于C/C++...
在C中,全局变量在函数中自动生效,除非被局部变量覆盖。
在PHP中,函数外的参数,无法在函数内访问,除非传参数地址引用。
或者使用global在函数中声明这是全局变量。
原因是作用域不一样。
function say_hello($some_name){
echo "Hello ,".$some_name;
echo "
";
}
say_hello("MrLiu");
$a = 1;
$b = 2;
function sum1(&$a,&$b){
$b = $a + $b;
}
function sum2(){
global $a,$b; //global声明全局 去找全局变量$a,$b
$b = $a + $b;
}
echo '$a + $b = '.$b;
数组:添加了索引,更快更方便找到数组元素。
//1
";
echo "
";
}
print_r($ms_office); //使用print_r遍历输出数组
$item_num = count($ms_office);
echo '数组$ms_office的元素个数为:'.$item_num;
?>
//2
'word',
'ec'=>'excel',
'ol'=>'outlook',
'ac'=>'access'
);
foreach($ms_office as $key=>$value){ //使用foreach遍历数组$ms_office的值
echo $key.":".$value; //输出数组$ms_office中的值
echo "
";
echo "
";
}
echo "";
print_r($ms_office); //有序输出数组$ms_office的结构
?>
数组的各种操作:
//数组分割:
array array_chunk(array $input_array, int $size, bool preserve);
//数组合并
array array_merge($array....)
//返回数组当前元素
current($array[..]);
//返回当前元素的下一个元素,指针移到下一个。
next($array[..]);
//返回当前元素的上一个元素,指针移到上一个。
prev($array[..]);
//返回数组的最后一个元素的值
end($array);
//清除索引,正向排序,字母由前到后,数字由小到大。
bool sort(array &$arr [,int $sort_flag]);
//清除索引,逆向排序
bool rsort(array &$arr [,int $sort_flag]);
//保持索引,正向排序
asort();
//保持索引,按索引名正向排序
ksort();
//随机排序,去键名
bool shuffle(array $array);
//按原顺序反向排序
array array_reverse(array $array [,bool $preserve_keys]);
//重置数组:函数内部指针指回数组第一个元素
mixed reset(array &$arr);
//用数组对变量赋值
$planet = array(
.....
)
list($no1,$no2,$no3) = $planet;
//快速创建数组:
echo '';
$arr1 = range(5,10);
print_r($arr1);
$arr2 = range('a','f');
print_r($arr2);
$arr3 = range(2,10,2);
print_r($arr3);
//压入数组元素在末端
int array_push(array $array,mixed $var);
//弹出数组元素在末端
mixed array_pop(array $array);
//改变数组字符索引名的大小写
array array_change_key_case()
//数组之间的交集
array array_intersect(array $arr1,array $arr2....);
//加索引取交集
array array_intersect_assoc(array $arr1,array $arr2...);
//数组之间的差集
array array_diff(array $arr1,array $arr2...);
//加索引算差集
array array_diff_assoc(array $arr1,array $arr2...);
//交换数组索引和元素
array array_flip(array $arr);
//快速填充数组元素
array array_fill(int $start,int $num,mixed $value);
//统计数组元素出现次数
array array_count_values(array $arr);
//检查数组索引是否存在
bool array_key_exists(mixed $key,array $search);
//取得数组中的索引索引
array array_keys(array $arr [, mixed $search_value [, bool $strict]]);
//用回调函数处理数组
array array_map(callback_func,array $arr1...);
//判断某个值是否存在于数组
in_array();
//获取数组中当前单元的索引值
.key($array array);
字符串:
PHP对字符串处理的完美支持,是PHP的强大功能之一。
//分割字符串
array explode(string $separator, string $str [,int $limit]);
$arr = explode(',',$str);
$arr = explode(',',$str,2);
//合并字符串
string implode(string $bds,array $arr);
//比较两个字符串大小
int strcmp(string $str1,string $str2);
//字符串的替换
string str_replace(string $search,string);
//输出打印字符串
int print(string $str);
//格式化字符串
string sprint(string $format, mixed $args);
//获取字符串中的一个子串
string substr(string $str, int $start, int $length);
//删除字符串末尾的空白字符
string rtrim(string $str);
//删除字符串开始部分的空白字符
string ltrim(string $str);
//删除字符串两头的空白字符
string trim(string $str);
//获取字符串长度
int strlen(string $str);
//小写字母转大写字母
strtolower($str);
//大写字母转小写字母
strtoupper($str);
//将字符串中有关字符转换成HTML实体,即HTML字符编码。
string htmlentities(string $str);
//将HTML实体转换成相关的字符,和htmlentities逆运算
string html_entity_decode(string $str);
//多次生成一个字符串,重复生成
string str_repeat(string $input, int $num);
//将字符串分析到变量
void parse_str(string $str [, array $arr]);
//转换字符串到数组
array str_split(string $str [, int $split_length]);
//MD5散列加密
string md5(string $str);
//SHA1散列加密
string sha1(string $str);
PHP操作目录和文件
目录操作:
//打开目录
$dh = opendir(string $path);
//关闭目录
void closedir($dh);
//获取目录中下一个文件的文件名
string readdir($dh);
$dir = "D:\files";
if($dh = opendir($dir)){
while(($file_name = readdir($dh)) != FALSE){
echo "file name:".$file_name;
echo "
";
echo "
";
}
closedir($dh);
}
//列出某一目录下的所有文件
array scandir(string $directory);
$dir = "D:\files";
$file_list1 = scandir($dir);
$file_list2 = scandir($dir,1); //字母降序输出
echo "";
print_r($file_list1);
print_r($file_list2);
//获取PHP当前工作目录
echo getcwd();
//改变PHP当前工作目录
chdir("dir_test");
文件操作:
//打开文件
$fp = fopen(string $filename , string $mode);
$fp = fopen($_SERVER['DOCUMENT_ROOT']."/../files/read.txt","w");
$fp = fopen("D:\\data\\log.bat");
//关闭文件
fclose($fp);
//读入文件的整个内容
int readfile(string $filename);
//将整个文件读入一个数组
array file(string $filename ,[int include_path]);
//整个文件内容读入一个字符串
string get_file_contents(string $filename);
//向文件写入内容
int fwrite($fp, string $content [, int $length]);
int fputs($fp, string $content [, int $length]);
int file_put_contents(string $filename, string $data);
//获取文件的相关信息
fileowner(string filename);
filesize(string filename);
filetype(string filename);
//判断文件性质的函数
is_dir($filename); //是否是目录
is_file($filename); //判断是否是普通文件
is_readable($filename); //判断指定的文件是否可读
is_writeable($filename); //判断指定的文件是否可写
//获取路径中的文件名
string basename(string $path);
//获取路径中的目录名
string dirname(string $path);
//判断文件或目录是否存在
bool file_exists(string $filename);
//用PHP建立目录
mkdir($dir_name);
//删除一个目录
rmdir($dir_name);
//复制文件
copy($source,$desc);
//删除由参数$file指定的文件
unlink($file);
//文件重命名
rename($oldname,$newname);
//PHP处理文件的锁定 限制操作,避免出现两个程序同时操作同一个文件出错。
bool flock($fp, int $operation [,int &wouldblock]);
flock($fp,LOCK_SH); //读锁定
flock($fp,LOCK_EX); //写锁定
flock($fp,LOCK_UN); //释放锁定
flock($fp,LOCK_NB); //防止锁定时阻塞
//PHP更改文件的属性
chmod("/home/log/del.sh",0777); //将文件改为 所有人可读可写可执行
chown("/etc/password","root"); //将文件的所有者改为root
//获取文件时间属性
$last_access = fileatime("data.txt"); //获取文件的上次访问时间
$last_modify = filemtime("data.txt"); //获取文件的上次修改时间
$last_modify_inode = filectime("data.txt"); //获取文件上次inode被修改的时间
//通过HTTP协议打开文件
$file = fopen("http://localhost/ch06/server_data.txt","r");
//读取文件内容
string fgetss(resourse $handle);
//包含指定的文件到当前文件
include("1.php"); //遇到错误产生警告
require("1.php"); //遇到错误直接崩溃
用PHP处理日期和时间
//获取格式化的日期和时间
string date(string $format [, int timestamp]);
echo date('Y-m-d');
//将一个日期和时间转换成一个UNIX时间戳
int mktime(int $hour ,int $minute , int $second, int $month,int day,int $year);
//返回当前日期和时间的UNIX时间戳
$cur_timestamp = mktime();
mktime(0,0,0,1,1); //返回当前年份1月1日的UNIX时间戳
//获取日期和时间
array getdate([int $timestamp]);
//时间差
$national_day_year = floor($national_time/(365*24*60*60)); //相距的年数
$national_day_day = floor($national_time/(24*60*60)); //相距的天数
//检查时间的有效性
bool checkdate(int $month, int $day, int $year);
PHP对URL、HTTP的处理
//对URL进行编码
string urlencode(string $str);
//对URL进行解码
string urldecode(string $str);
//对URL地址进行分析
parse_url($url);
//生成一个HTTP头
header(string $str_header);
//获取HTTP头信息
print_r($_SERVER);
//生成cookie
bool setcookie(string name[, string value [,int expire [, string path [,string domain [,bool secure]]]]]);
//获取cookie
setcookie("testcookie","ilovephp"); //设置cookie
echo "cookie's value:".$_COOKIE['testcookie']; //输出指定的cookie
//cookie的有效期
setcookie('cookie_one','i_am_cookie1',time()+60*60); //设置cookie 1个小时后失效
setcookie('cookie_two','i_am_cookie2',time()+60*60*24); //设置cookie 1天后失效
setcookie('cookie_three','i_am_cookie3',mktime(12,0,0,1,1,2018));//2018年1月1号失效
setcookie('mycookie','delicious',0); //浏览器关闭后失效
//cookie的有效路径
secookie('mycookie','delicious',0,'/ck_path/');
//删除cookie
setcookie('mycookie','');
PHP中的数学运算
//返回参数$num的绝对值
abs($num);
//返回不小于$num的整数
ceil($num);
//返回不大于$num的整数
floor($num);
//返回参数$num的平方根
sqrt($num);
//对浮点数$num根据精度$precision四舍五入
round($num,$precision);
//将十进制转换成二进制
decbin($num);
//将十进制转换成十六进制
dechex($num);
//将十进制转换成八进制
decoct($num);
//将二进制转换成十进制
bindec($num);
//将十六进制转换成十进制
hexdec($num);
//将八进制转换成十进制
octdec($num);
//将$from所表示进制的数$num转换成以$to所表示的进制数后,返回转换后进制的数字字符串
base_convert($num,$from,$to);
//生成随机数
int mt_rand(int $min, int $max);
PHP获取系统信息
//获取环境变量
$root = getenv('DOCUMENT_ROOT');
//获取服务器端口
$port = getenv('SERVER_PORT');
//获取当前文件
$file = getenv('SCRIPT_NAME');
//获取当前用户
$ua = getenv('HTTP_USER_AGENT');
//获取请求方法
$method = getenv('REQUEST_METHOD');
//获取传输协议
$protocol = getenv('SERVER_PROTOCOL');
//添加一个环境变量并且为其赋值
bool putenv(string $env_setting);
$env_var = newenv;
putenv("MY_ENV = $env_var");
//返回一个数组,其中包含所有被编译和装载的模块
$exten_list = get_loaded_extensions(); //获取载入的扩展模块
//返回一个数组,包含了由参数$module指定模块的所有函数名称
$ext_func = get_extension_funcs($extension);
//获取PHP当前各类信息
echo phpinfo();
//获取当前PHP进程的进程号
echo "该进程ID号:".getmypid();
//获取当前PHP进程的所有者
echo "该程序所有者:".get_current_user();