初识PHP-快速上手指南

简介: 本文介绍了PHP编程的基础知识,涵盖语法格式、变量定义、数据类型、运算符、流程控制语句(如if、switch、循环)、常用内置函数、超全局变量及表单处理示例,帮助初学者快速掌握PHP核心语法与实际应用。

一、格式

  1. 每行以分号结尾
<?php
 echo 'hello';
?>

二、echo函数和print函数

  1. 作用:两个函数都是输出内容到页面中,多用于代码调试。
<?php
echo "<h1 style='text-align: center;'>test</h1>";
print "<h1 style='text-align: center;'>test</h1>";
?>
  1. 效果图

三、注释符

  1. 单行注释
  1. //
  2. #
# //
# 
# PhpStorm快捷键:Ctrl+/
<?php
// echo "<h1 style='text-align: center;'>test</h1>";
#  echo "<h1 style='text-align: center;'>test</h1>";
?>
  1. 多行注释
# /**/
# PhpStorm快捷键:Ctrl+Shift+/
<?php
/*
 * echo "<h1 style='text-align: center;'>test</h1>";
echo "hello"
*/
?>

四、运算符

  1. 加减乘除
<?php
echo 1+3 ;
echo '<br/>';
echo 6-1;
echo '<br/>';
echo 2*3 ;
echo '<br/>';
echo 6/2 ;
echo '<br/>';
?>
  1. 效果图:
  1. 疑问:2为什么在最底下

五、数据类型

  1. 类型汇总:
  1. String(字符串)
  2. Integer(整型)
  3. Float(浮点型)
  4. Boolean(布尔型)
  5. Array(数组)
  6. Object(对象)
  7. NULL(空值)
  8. Resource(资源类型)
  1. 示例代码:
<?php
echo "=====int=======";
echo "<br>";
echo 1; # 整型  数字型
echo "<br>";
var_dump(1); #var_dump用于查看值的数据类型
echo "<br>";
echo "=====string=======";
echo "<br>";
echo "1"; # 字符型
echo "<br>";
var_dump("1");
echo "<br>";
echo "=====float=======";
echo "<br>";
echo 1.1; # 浮点型
echo "<br>";
var_dump(1.1);
echo "<br>";
echo "=====boolean=======";
echo "<br>";
echo false; # 布尔型
echo "<br>";
var_dump(true);
echo "<br>";
echo "=====array=======";
echo "<br>";
$array = array('1','2','3'); # 数组
echo $array[0]; # 输出数组中下标为0的数据
echo "<br>";
var_dump($array);
echo "<br>";
echo "=====null=======";
echo "<br>";
$null = null;
echo $null; # 输出数组中下标为0的数据
echo "<br>";
var_dump($null);
echo "<br>";
echo "=====resource=======";
echo "<br>";
/*$c = mysql_connect();
echo get_resource_type($c) . "\n";
// 打印:mysql link
$fp = fopen("foo", "w");
echo get_resource_type($fp) . "\n";
// 打印:file
$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc) . "\n";
// 打印:domxml document*/
echo "<br>";
echo "=====object=======";
echo "<br>";
class Color{
    function print(){
        echo "this is color";
    }
}
$color = new Color();
$color->print();
?>
  1. 效果

六、变量

  1. 变量是用于存储信息的"容器",变量以 $ 符号开始
  1. 变量名必须以字母或者下划线字符开始
  2. 变量名只能包含字母、数字以及下划线(A-z、0-9 和 _ )
  3. 变量名不能包含空格
  4. 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
  5. 扩展
  1. 在上面的实例中,我们注意到,不必向 PHP 声明该变量的数据类型。
  2. PHP 会根据变量的值,自动把变量转换为正确的数据类型。
  3. 在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。
  1. 示例
# 输出结果为:1
<?php
$num=1;
echo $num;
?>
  1. 强转数据类型
# 将字符串强转为整型
<?php
$num="1";
$num = (int)$num;
echo var_dump($num); # 结果为:int(1)
?>

七、判断语句

  1. If语句
# == 判断值
# === 判断值和数据类型
# 最后结果为 success
<?php
if(1==="1"){
    echo "fail1";
}
elseif (1===1){
    echo "success";
}
else{
    echo "fail2";
}
?>
  1. switch语句
# 结果为:1
<?php
$num =1;
switch($num){
    case 1:
        echo "1";
        break;
   case 2:
        echo "2";
        break;
    default:
        echo "error";
}
?>
  1. 示例:输入值并判断是否相等
# 输入11,返回success
# 输入其他值,返回error
<html >
<body>
<form action="test01.php" method="post">
    请输入值: <input type="text"   name="num">
    <input type="submit" >
</form>
</body>
</html>
<?php
$num = $_POST["num"];
if ($num==11){
    echo "success";
}
else{
    echo "error";
}
?>

八、循环语句

  1. for循环
<?php
for ($i = 0; $i < 10; $i++) {
    echo $i;
}
?>
  1. 效果图

  1. while循环
<?php
$index=0;
while($index<10){
    echo $index."<br>";
    $index++;
}
?>
  1. 效果图

九、基本函数

  1. array()
  1. 用于创建一个数组。
  1. is_array()
  1. 用于判断给定变量是否是数组类型,返回布尔值。
  1. count()
  1. 用于获取数组或对象的元素个数。
  1. sizeof()
  1. 与count()函数类似,用于获取数组或对象的元素个数。
  1. in_array()
  1. 用于检查一个值是否在数组中,返回布尔值。
  1. array_search()
  1. 查找数组中的键值是否存在,返回键名或false。
  1. array_keys()
  1. 返回数组中所有的键名。
  1. array_values()
  1. 返回数组中所有的值。
  1. array_merge()
  1. 用于合并一个或多个数组。
  1. array_pop()
  1. 返回数组中最后一个元素,并将其删除。
  1. array_push()
  1. 将一个或多个元素插入到数组末尾。
  1. array_shift()
  1. 返回数组中第一个元素,并将其删除。
  1. array_unshift()
  1. 将一个或多个元素插入到数组开头。
  1. implode()
  1. 用于将数组元素连接成字符串。
  1. explode()
  1. 用于将字符串按指定分隔符分割成数组。
  1. str_replace()
  1. 用于查找和替换字符串中某个子串。
  1. substr()
  1. 用于获取字符串的部分内容。
  1. urlencode()
  1. 用于将字符串转换为URL编码格式。
  1. urldecode()
  1. 用于将URL编码字符串转换为原始字符串。
  1. htmlentities()
  1. 用于将字符串中的HTML实体转换为原始字符。
  1. htmlspecialchars()
  1. 用于将特殊字符转换为HTML实体。
  1. trim()
  1. 用于去除字符串开头和结尾处的空格或其他字符。
  1. nl2br()
  1. 用于将换行符(\n)转换为HTML的换行标签()。
  1. header()
  1. 用于设置HTTP响应头信息。
  1. session_start()
  1. 用于启动一个新的或继续当前的会话。
  1. $_SESSION
  1. 用于在会话中存储和获取变量的值。
  1. file_get_contents()
  1. 用于获取文件的内容。
  1. file_put_contents()
  1. 用于将数据写入文件中。
  1. fopen()
  1. 用于打开文件或URL,返回文件句柄。
  1. fclose()
  1. 用于关闭打开的文件句柄。
  1. fgets()
  1. 用于从文件指针读取一行。
  1. fgetcsv()
  1. 用于从文件指针读取CSV文件中的一行并解析为数组。
  1. fwrite()
  1. 用于向文件中写入数据。
  1. isset()
  1. 用于检测变量是否设置并且有值,返回布尔值。
  1. empty()
  1. 用于判断变量是否为空或者是否包含值为0的元素,返回布尔值。
  1. is_numeric()
  1. 用于判断一个变量是否为数字类型,返回布尔值。
  1. intval()
  1. 用于将字符串转换为整数类型。
  1. floatval()
  1. 用于将字符串转换为浮点数类型。
  1. strval()
  1. 用于将一个值转换为字符串类型。
  1. rand()
  1. 用于生成一个随机数。
  1. time()
  1. 用于获取当前时间的时间戳。
  1. date()
  1. 用于获取当前日期和时间。
  1. strtotime()
  1. 用于将文本日期时间转换为Unix时间戳。
  1. mail()
  1. 用于发送电子邮件。
  1. preg_match()
  1. 用于在字符串中查找匹配的模式。
  1. preg_replace()
  1. 用于在字符串中搜索和替换匹配的模式。
  1. md5()
  1. 用于计算字符串的MD5哈希值。
  1. sha1()
  1. 用于计算字符串的SHA-1哈希值。
  1. base64_encode()
  1. 用于将文本字符串转换为base64格式。
  1. base64_decode()
  1. 用于将base64格式字符串解码为文本字符串。

十、 超级全局变量

  1. PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。
  2. PHP 超级全局变量列表:
  1. $GLOBALS
  2. $_SERVER
  3. $_REQUEST
  4. $_POST
  5. $_GET
  6. $_FILES
  7. $_ENV
  8. $_COOKIE
  9. $_SESSION

十一、表单注册示例

  1. 代码示例
<?php
$userNameError=$passwordError=$confirmPasswordError='';
$userName=$password=$confirmPassword='';
if(isset($_POST["registerBtm"])){
    $userName =outFormat( $_POST["userName"]);
    $password = outFormat($_POST["password"]);
    $confirmPassword =outFormat($_POST["confirmPassword"]);
    if(!empty($userName)){
        if(!empty($password)){
            if(!empty($confirmPassword)){
                if(userNameReg($userName)){
                    if(passwordReg($password)){
                        if($password == $confirmPassword){
                          echo "<script>alert('注册成功!')</script>";
                        }else{
                            $confirmPasswordError = "两次密码不一致";
                        }
                    }else{
                        $passwordError="字母、数字、下划线组合的8位密码";
                    }
                }else{
                    $userNameError="以字母开头,长度为8";
                }
            }else{
                $confirmPasswordError="请再次输入密码";
            }
        }else{
            $passwordError="请输入密码";
        }
    }else{
        $userNameError="请输入用户名";
    }
}
# 去除格式
function outFormat($value){
    $value=trim($value);
    $value=stripslashes($value);
    $value=htmlspecialchars($value);
    return $value;
}
/*
 * 以字母开头,长度为8的用户名
 * */
function  userNameReg($value)
{
    return preg_match("/^[a-zA-Z][a-zA-Z0-9_]{7}$/",$value)?true:false;
}
/*
 * 字母、数字、下划线组合的8位密码
 * */
function  passwordReg($value)
{
    return preg_match("/^[a-zA-Z0-9_]{8}$/",$value)?true:false;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            padding:0;
            margin:0;
            /*border: 0;*/
        }
        body{
            background: #ffffff;
        }
        .box{
            box-shadow: 10px 10px 5px #f5f5f5;
            width:500px;
            height: 400px;
            border:1px solid #f5f5f5;
            border-radius: 20px;
            margin: 50px auto;
        }
        h3{
            text-align: center;
            padding-top: 20px;
        }
        .loginForm{
            padding-top: 100px;
            text-align: center;
        }
        .loginForm input{
            margin: 10px 0px;
        }
        .register{
            display: inline-block;
            color: #057070;
            cursor:pointer;
            transition: all 1s;
        }
        .register:hover{
            text-decoration: underline;
            transition: all 1s;
        }
    </style>l
</head>
<body>
<div class="box">
    <h3>注册</h3>
<!--
作用:请求自己的页面
参考:https://www.kancloud.cn/chunyu/php_basic_knowledge/973403
$_SERVER['PHP_SELF']             //当前正在执行脚本的文件名
htmlspecialchars():是PHP中的一个字符串处理函数,用于将HTML标记转化为实体字符。
-->
    <form action="<?php htmlspecialchars($_SERVER['PHP_SELF'])?>" method="post" class="loginForm">
        用户名:<input type="text" name="userName" value="<?php echo $userName?>">
           <span style="color:red;font-size: 10px">
                <?php echo $userNameError; ?>
           </span>
         <br/>
        密&nbsp;&nbsp;&nbsp;码:<input type="password" name="password" value = "<?php echo $password ?>">
        <span style="color:red;font-size: 10px">
                <?php echo $passwordError; ?>
           </span>
        <br/>
        <span style="margin-left: -16px" >确认密码:</span>
        <input type="password" name="confirmPassword"  value = "<?php echo $confirmPassword?>">
        <span style="color:red;font-size: 10px">
                <?php echo $confirmPasswordError; ?>
           </span>
        <br/>
        <input type="submit"  value="注册" name="registerBtm">
    </form>
    <p style="text-align: center;font-size: 12px" >请
        <a href="login.html" class="register">登录</a>
    </p>
</div>
</body>
</html>
<!--
isset():检测变量是否设置
empty(): 判断变量是否为空
    true(1):为空
    false(0):不为空
preg_match(表达式,变量名):执行正则表达式匹配
-->
  1. 效果图

目录
相关文章
|
2月前
|
安全 网络协议 NoSQL
Web渗透-常见的端口及对其的攻击思路
本文介绍了常见网络服务端口及其安全风险,涵盖FTP、SSH、Telnet、SMTP、DNS、HTTP、SMB、数据库及远程桌面等20余个端口,涉及弱口令爆破、信息泄露、未授权访问、缓冲区溢出等典型漏洞,适用于网络安全学习与渗透测试参考。
668 59
|
2月前
|
存储 JSON 安全
加密和解密函数是如何实现的?
加密和解密函数是如何实现的?
431 123
|
2月前
|
存储 安全 前端开发
Web渗透-文件上传漏洞-上篇
文件上传漏洞常见于Web应用,因类型限制不严可致恶意文件执行。本文介绍前端检测、MIME类型、黑名单、.htaccess、空格、双写等多种绕过方式,并结合upload-labs靶场演示利用方法,提升安全防护认知。
358 1
Web渗透-文件上传漏洞-上篇
|
2月前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段三:自定义 Advisor 与结构化输出实现以及对话记忆持久化开发
本文介绍如何在Spring AI中自定义Advisor实现日志记录、结构化输出、对话记忆持久化及多模态开发,结合阿里云灵积模型Qwen-Plus,提升AI应用的可维护性与功能性。
619 125
AI 超级智能体全栈项目阶段三:自定义 Advisor 与结构化输出实现以及对话记忆持久化开发
|
2月前
|
缓存 监控 Java
SpringBoot @Scheduled 注解详解
使用`@Scheduled`注解实现方法周期性执行,支持固定间隔、延迟或Cron表达式触发,基于Spring Task,适用于日志清理、数据同步等定时任务场景。需启用`@EnableScheduling`,注意线程阻塞与分布式重复问题,推荐结合`@Async`异步处理,提升任务调度效率。
517 128
|
2月前
|
安全 测试技术 程序员
web渗透-文件包含漏洞
文件包含漏洞源于程序动态包含文件时未严格校验用户输入,导致可加载恶意文件。分为本地和远程包含,常见于PHP,利用伪协议、日志或session文件可实现代码执行,需通过合理过滤和配置防范。
601 79
web渗透-文件包含漏洞
|
2月前
|
安全 PHP 开发工具
Web渗透信息收集进阶
网站敏感目录与文件指易被恶意扫描利用的路径,如后台管理、.git、.svn等,可能导致源码泄露或权限入侵。常用工具如御剑、Dirbuster、Dirsearch可探测此类信息,需加强安全防护。
561 58
Web渗透信息收集进阶
|
2月前
|
监控 前端开发 安全
Netty 高性能网络编程框架技术详解与实践指南
本文档全面介绍 Netty 高性能网络编程框架的核心概念、架构设计和实践应用。作为 Java 领域最优秀的 NIO 框架之一,Netty 提供了异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。本文将深入探讨其 Reactor 模型、ChannelPipeline、编解码器、内存管理等核心机制,帮助开发者构建高性能的网络应用系统。
228 0
|
2月前
|
存储 安全 Shell
vulnhub靶机实战_DC-4
本文介绍了DC-4靶机渗透测试的完整过程,包括靶机下载、环境搭建、信息扫描、漏洞利用、提权以及最终获取flag的详细步骤。通过使用工具如nmap、Hydra进行端口扫描与密码爆破,结合反向Shell与teehee命令实现权限提升,最终成功获取系统flag。内容详实,适合网络安全学习与实践。
443 0
vulnhub靶机实战_DC-4
|
2月前
|
开发框架 安全 Java
Web渗透思路及src漏洞挖掘思路
本内容系统讲解Web渗透测试思路,涵盖系统、网站、App及服务层面的渗透技术,包括漏洞探测工具使用、CMS系统分析、开发框架识别等,并介绍了SRC漏洞挖掘及CNVD证书提交流程,助力网络安全学习与实践。
266 0
Web渗透思路及src漏洞挖掘思路

热门文章

最新文章