PHP基础入门(二)

简介: PHP基础

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');
?>


相关文章
|
4月前
|
安全 关系型数据库 MySQL
PHP与MySQL交互:从入门到实践
【9月更文挑战第20天】在数字时代的浪潮中,掌握PHP与MySQL的互动成为了开发动态网站和应用程序的关键。本文将通过简明的语言和实例,引导你理解PHP如何与MySQL数据库进行对话,开启你的编程之旅。我们将从连接数据库开始,逐步深入到执行查询、处理结果,以及应对常见的挑战。无论你是初学者还是希望提升技能的开发者,这篇文章都将为你提供实用的知识和技巧。让我们一起探索PHP与MySQL交互的世界,解锁数据的力量!
|
1月前
|
PHP
PHP中的面向对象编程入门
在PHP的海洋里,面向对象编程(OOP)是一艘承载着代码复用与组织之美的巨轮。本文将带你启航,从基础概念到实际应用,领略类与对象的风采,掌握封装、继承、多态三大奥义。准备好你的航海图,让我们揭开PHP OOP的神秘面纱,驶向高效编程的彼岸。
|
4月前
|
PHP 开发者
PHP中的面向对象编程:从入门到精通
【9月更文挑战第27天】在这篇文章中,我们将一起探索PHP中的面向对象编程(OOP)的美妙世界。我们将从基础的概念和语法开始,然后深入到更高级的主题,如继承、多态和封装。无论你是PHP新手还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。让我们一起踏上这段旅程,发现PHP OOP的强大功能吧!
45 8
|
3天前
|
存储 缓存 安全
网安入门之PHP后端基础
PHP 是一种服务器端脚本语言,广泛用于动态网站和Web应用程序开发。其文件扩展名为`.php`,支持嵌入HTML、CSS和JavaScript。PHP代码由Web服务器解析后返回给浏览器。PHP是弱类型语言,变量以`$`开头,支持字符串、整数、浮点数、布尔值、数组、对象等类型。PHP具有跨平台、开源、丰富的扩展库等特点。常用超全局变量如`$_GET`、`$_POST`、`$_SESSION`等处理用户输入和会话数据。HTTP请求方法GET和POST在数据传输方式、长度限制、安全性等方面有显著差异。
网安入门之PHP后端基础
|
2月前
|
Java 程序员 PHP
01 入门PHP就来我这-安装phpstudy
路老师的PHP入门教程,带你从零开始学习PHP。首先下载并安装phpStudy,接着配置域名和端口,最后创建并运行第一个PHP文件。内容详实,适合初学者。
53 3
01 入门PHP就来我这-安装phpstudy
|
2月前
|
安全 关系型数据库 PHP
探索PHP:从入门到精通
【10月更文挑战第38天】在这篇文章中,我们将一起踏上PHP的探索之旅。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和技巧。我们将从PHP的基础开始,逐步深入到更复杂的主题,包括面向对象编程、数据库操作、安全性问题等。最后,我们将通过一些实用的代码示例,来展示PHP的强大功能和灵活性。让我们一起开始这段旅程吧!
17 2
|
2月前
|
存储 Serverless PHP
PHP编程入门:从基础到实战
【10月更文挑战第35天】本文将带你走进PHP的世界,从最基本的语法开始,逐步深入到实际应用。我们将通过简单易懂的语言和实际代码示例,让你快速掌握PHP编程的基础知识。无论你是初学者还是有一定经验的开发者,都能在这篇文章中找到你需要的内容。让我们一起探索PHP的魅力吧!
|
3月前
|
PHP 开发者
PHP中的异常处理:从入门到精通####
本文将深入浅出地探讨PHP中的异常处理机制,包括异常的基本概念、如何抛出与捕获异常、自定义异常类以及最佳实践。无论你是PHP新手还是经验丰富的开发者,都能从中学到实用的知识,帮助你编写更健壮的代码。 --- ####
|
2月前
|
自然语言处理 关系型数据库 MySQL
PHP编程入门:构建你的第一个网页应用
【10月更文挑战第29天】本文旨在引导初学者步入PHP编程的世界,通过深入浅出的方式介绍PHP的基础知识,并指导读者如何动手实践,搭建一个简单的网页应用。文章不仅涉及PHP代码的编写,还包括了环境配置、项目结构设计以及前后端交互的基本概念。适合对Web开发感兴趣且希望快速入门的朋友阅读。
52 0
|
4月前
|
前端开发 PHP 数据库
PHP编程入门:从基础到实战
【9月更文挑战第23天】本文将引导你进入PHP编程的世界,从基础知识到实际项目应用,逐步深入。我们将一起探索PHP的基本语法、常用函数和框架使用,以及如何在实际项目中运用PHP进行开发。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的参考和启示。让我们一起踏上PHP编程的学习之旅吧!