PHP函数基本语法
Function 函数名(参数名1=[值1], 参数名2=[值2] , 参数名n=[值n]) { 函数中的功能体 [return 返回值] } <?php function php_cn(){ echo "好好学习"; } php_cn(); php_cn(); ?>
外部引用
<html> <head> <title>网站页面信息</title> </head> <body> <!-- 先用POST来做实验,以后可以改为get --> <form action="glob.php" method="post"> <input type="text" name="info"/> <input type="submit" name="提交"/> </form> </body> </html> <?php function demo() { echo $_POST['info']; } demo(); ?>
函数信息 说明 包含失败
include 文件继续向下执行,通常用于动态包含 返回一条警告
require 代码就不会继续向下执行,通常包含极为重要的文件,这个代码别想执行 返回一个致命错误
Include_once 除了原有include的功能外,它还会做once检测,如果文件曾经被包含过,不在包含 返回一条警告
require_once 除了原功能以外,会做一次once检测,防止文件反复被包含 返回一个致命错误
include函数功能实践:
创建一个functions.php文件,里面写上两个函数:
<?php //functions-test-02文件 function demo(){ echo 'aaaa'; } function test(){ echo 'bbbb'; } ?>
在functions.php的同级目录下,在创建一个user.php文件把functions.php文件包含进来.
这样函数信息就可以专门放在functions.php里面,哪需要用到这些函数的时候,就从哪包含进来.
<?php //user.php include "function-test-02.php"; //可以直接调用 demo(); test(); ?>
函数信息 说明 实例
abs() 求绝对值 输入数字 输出绝对值数字 $abs=abs(-42);//42
ceil() 进一法取整输入浮点数 输出进一取整 echo ceil(9.999)//10
floor() 舍去法取整输入浮点数 输出直接舍去小数部分 echo ceil(9.999)//9
fmod() 浮点数取余输入两个浮点数 输出浮点数余数 $x=5.7;$y=1.3;$r=fmod($x,$y)//$r 0.5
pow() 返回数的n此房输入基础的n此房 输出乘方值 echo pow(-1,20)//1
round 浮点数四舍五入输入一个数值 输出保留小数点后多少位默认为0舍入后的结果 echo round(195583.2)//196
sqit 求平方根输入被开方的数 输出平方根 echo sqit(9)//3
max() 求最大值输入多个数字或数组 输出返回其中的最大值 echo max(1.3.5.6.7) //7echo max(array(2,4,5)) //5
min() 求最大值输入多个数字或数组 输出返回其中的最大值 echo min(1.3.5.6.7) //7echo min(array(2,4,5)) //5
mt_rand() 更好的随机数输入最小和最大 输出返回其中的最大值 echo min(array(2,4,5)) //5
rand() 随机数输入最小或最大 输出返回其中的最大值随机分配 echo rand()
pi() 获取圆周率值 rcho pi
PHP正则表达式
PHP的正则表达示定界符的规定如下:定界符,不能用a-zA-Z0-9\ 其他的都可以用。必须成对出现,有开始就有结束。
举例说明正则符号的定义方式:
例子 说明
/中间写正则/正确
$中间写正则$正确
%中间写正则%正确
^中间写正则^正确
@中间写正则@正确
(中间写正则)错误 /\//
A中间写正则A错误
正则表达式格式:
preg_match ( string $正则 , string $字符串 , array&$结果] )
功能:根据$正则变量,匹配$字符串变量。如果存在则返回匹配的个数,把匹配到的结果放到$结果变量里。如果没有匹配到结果返回0。
<?php $zz = '/wq/'; $string = 'ssssswqaaaaaa'; if(preg_match($zz, $string, $matches)){ echo '匹配到了,结果为:'; var_dump($matches); }else{ echo '没有匹配到'; } ?>
函数信息 说明
preg_filter 执行一个正则表达式搜索和替换
preg_grep 返回匹配模式的数组条目
preg_match 执行一个正则表达式匹配
preg_match_all 执行一个全局正则表达式匹配
preg_replace_callback_array 传入数组,执行一个正则表达式搜索和替换使用回调
preg_replace_callback 执行一个正则表达式搜索并且使用一个回调进行替换
preg_replace 执行一个正则表达式的搜索和替换
preg_split 通过一个正则表达式分隔字符串
PHP文件系统管理
fopen、fread、fclose操作读取文件
readfile读取文件函数
int readfile ( string $文件名)
功能:传入一个文件路径,输出一个文件。
<?php //linux类的读了方式 readfile("/home/paul/test.txt"); //windows类的读取方式 readfile("c:\\oldboy\oldboy\boot.ini"); ?>
注意:上面的代码中windows的斜线是\斜线,可能会转义掉一些字符。因此,我们写的时候写上两个斜线。
file_get_contents打开文件函数
<?php $filename = 'NoAlike.txt'; $filestring = file_get_contents($filename); echo $filestring; ?> file_get_contents打开文件的方式简单、粗暴 resource fopen ( string $文件名, string 模式) string fread ( resource $操作资源, int 读取长度) bool fclose ( resource $操作资源 )
fopen的模式有下面几个,我们来讲一下fopen的模式:
模式说明 r只读方式打开,将文件指针指向文件头。 r+读写方式打开,将文件指针指向文件头。 w写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建 w+读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建 a写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建 a+读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之 x创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建 x+创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建 <?php //你可以创建一个NoAlike.txt,以只读模式打开 $fp = fopen('NoAlike.txt', "r"); //var_dump()操作一下$fp看看效果,输出的是不是只有类型提示的是resource var_dump($fp); ?>
php 创建和修改文件内容
file_put_contents写入文件
file_put_contents ( string $文件路径, string $写入数据) 功能:向指定的文件当中写入一个字符串,如果文件不存在则创建文件。返回的是写入的字节长度 <?php $data = "在PHP中文网学好PHP,妹子票子不再话下!"; $numbytes = file_put_contents('test.txt', $data); if($numbytes){ echo '写入成功,我们读取看看结果试试:'; echo file_get_contents('test.txt'); }else{ echo '写入失败或者没有权限,注意检查'; } ?>
fwrite配合fopen进行写入操作
<?php $filename = 'test.txt'; $fp= fopen($filename, "w"); $len = fwrite($fp, '我是一只来自北方的狼,却在南方冻成了狗'); fclose($fp); print $len .'字节被写入了\n'; ?> 代码说明: · 不论有没有新建都会打开文件重新写入 · 原有的文件内容会被覆盖掉 · 文件不存在会创建 r只能读不能使用fwrite写 r+可操作读、写 w只可以写功能 w+即可读又可以写 x每次写入会干掉原有文件的内容,文件不存在都会创建 a每次写入都会向文件的尾端追加内容 注:a+ 是增强的追加功能。可以读取时也可以使用。
php 创建临时文件
<?php //创建了一个临时文件 $handle = tmpfile(); //向里面写入了数据 $numbytes = fwrite($handle, '写入临时文件'); //关闭临时文件,文件即被删除 fclose($handle); echo '向临时文件中写入了'.$numbytes . '个字节'; ?>
php移动、拷贝和删除文件
重命名文件
rename($旧名,$新名); 功能:这个函数返回一个bool值,将旧的名字改为新的名字。 <?php //旧文件名 $filename = 'test.txt'; //新文件名 $filename2 = $filename . '.old'; //复制文件 rename($filename, $filename2); ?>
复制文件
复制文件,就相当于是克隆技术,将一个原来的东西再克隆成一个新的东西,两个长得一模一样。 copy(源文件,目标文件) 功能:将指定路径的源文件,复制一份到目标文件的位置。 <?php //旧文件名 $filename = 'copy.txt'; //新文件名 $filename2 = $filename . '_backup'; //修改名字。 copy($filename, $filename2); ?>说明:会通过上面的例子,发现多出来了一个文件
删除文件
unlink(指定路径的文件) <?php $filename = 'test.txt'; if (unlink($filename)) { echo "删除文件成功 $filename!\n"; } else { echo "删除 $filename 失败!\n"; } ?>
检测文件属性函数
<?php if(file_exists('install.lock')){ echo '已安装,请不要再次进行安装'; exit; } ?>
函数信息 说明
file_exists( $指定文件名或者文件路径) 文件是否存在。
is_readable ( $指定文件名或者文件路径) 文件是否可读
is_writeable ( $指定文件名或者文件路径) 文件是否可写
is_executable ( $指定文件名或者文件路径) 文件是否可执行
is_file ( $指定文件名或者文件路径) 是否是文件
is_dir ( $指定文件名或者文件路径) 是否是目录
void clearstatcache ( void ) 清楚文件的状态缓存
php 目录处理函数
php 目录处理函数处理文件夹的基本思想如下:
读取某个路径的时候判断是否是文件夹
是文件夹的话,打开指定文件夹,返回文件目录的资源变量
使用readdir读取一次目录中的文件,目录指针向后偏移一次
使用readdir读取到最后,没有可读的文件返回false
关闭文件目录
函数信息 说明
opendir 打开文件夹,返回操作资源
readdir 读取文件夹资源
is_dir 判断是否是文件夹
closedir 关闭文件夹操作资源
filetype 显示是文件夹还是文件,文件显示file,文件夹显示dir
<?php //设置打开的目录是D盘 $dir = "d:/"; //判断是否是文件夹,是文件夹 if (is_dir($dir)) { if ($dh = opendir($dir)) { //读取到最后返回false,停止循环 while (($file = readdir($dh)) !== false) { echo "文件名为: $file : 文件的类型是: " . filetype($dir . $file) . "<br />"; } closedir($dh); } } ?>
php 文件权限设置
<?php //修改linux系统/var/wwwroot/某文件权限为755 chmod("/var/wwwroot/index.html", 755); chmod("/var/wwwroot/index.html", "u+rwx,go+rx"); chmod("/somedir/somefile", 0755); ?>
php文件路径函数
*函数信息* *说明*
pathinfo 返回文件的各个组成部份
basename 返回文件名
dirname 文件目录部份
parse_url 网址拆解成各部份
http_build_query 生成url 中的query字符串
http_build_url 生成一个url
<?php $path_parts = pathinfo('d:/www/index.inc.php'); echo '文件目录名:'.$path_parts['dirname']."<br />"; echo '文件全名:'.$path_parts['basename']."<br />"; echo '文件扩展名:'.$path_parts['extension']."<br />"; echo '不包含扩展的文件名:'.$path_parts['filename']."<br />"; ?>
php实现文件留言本
index.php展示输入框和留言内容
write.php 向message.txt写入数据
message.txt 存入聊天内容
编写index.php
<?php //设置时区 date_default_timezone_set('PRC'); //读了内容 @$string = file_get_contents('message.txt'); //如果$string 不为空的时候执行,也就是message.txt中有留言数据 if (!empty($string)) { //每一段留言有一个分格符,但是最后多出了一个&^。因此,我们要将&^删掉 $string = rtrim($string, '&^'); //以&^切成数组 $arr = explode('&^', $string); //将留言内容读取 foreach ($arr as $value) { //将用户名和内容分开 list($username, $content, $time) = explode('$#', $value); echo '用户名为<font color="gree">' . $username . '</font>内容为<font color="red">' . $content . '</font>时间为' . date('Y-m-d H:i:s', $time); echo '<hr />'; } } ?> <h1>基于文件的留言本演示</h1> <form action="write.php" method="post"> 用户名:<input type="text" name="username" /><br /> 留言内容:<textarea name="content"></textarea><br /> <input type="submit" value="提交" /> </form> write.php <?php //追加方式打开文件 $fp=fopen('message.txt','a'); //设置时间 $time=time(); //得到用户名 $username=trim($_POST['username']); //得到内容 $content=trim($_POST['content']); //组合写入的字符串:内容和用户之间分开,使用$# //行与行之间分开,使用&^ $string=$username.'$#'.$content.'$#'.$time.'&^'; //写入文件 fwrite($fp,$string); //关闭文件 fclose($fp); header('location:index.php'); ?>