PHP官方文档 菜鸟教程
测试服务器环境
<?php echo 'Hello World'; ?>找不到php.ini的话可以查看phpinfo
<?php phpinfo(); ?>访问后在页面中找Loaded Configuration File 即php.ini的路径 然后参照此博客 写个代码测试一下
<?php echo $a; ?>访问时会报Undefined variable
注意:生产环境下千万不要开报错提示!!!1.起始和结束标记
起始 <?php 结束 ?>
php解析器识别两标记之间的代码作出解析
2.注释 单行注释 // 或# 多行注释 /* */ 注意:多行注释时遇到第一个 */ 就会结束,这可能导致错误
四种标量类型:
boolean(布尔型) integer(整型) float(浮点型,也称作 double) string(字符串)三种复合类型:
array(数组) object(对象) callable(可调用)两种特殊类型:
resource(资源) NULL(无类型)类型查看函数:gettype($变量名) 类型和值查看函数:var_dump($变量名) 类型检验函数:is_type($变量名) 使用时具体为is_string()、is_int()、is_bool()等
echo可以输出一个或多个字符串,没有返回值
<?php echo "this","is","a","test"; ?>输出结果
print输出一个字符串,返回值为1
作用:按照原格式输出其内部的所有内容
结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,会解释内嵌的变量和转义符号 带单引号则不解释内嵌的变量和转义符号。
<?php $a=<<<EOF <h1>我的第一个标题</h1> <p>我的第一个段落。</p> EOF; // 结束需要独立一行且前后不能空格 echo $a; ?>运行结果
一个字符串 string 就是由一系列的字符组成,其中每个字符等同于一个字节。这意味着 PHP 只能支持 256 的字符集,因此不支持 Unicode
<?php echo 'this is a simple string'; // 可以录入多行 echo 'You can also have embedded newlines in strings this way as it is okay to do'; // 输出: Arnold once said: "I'll be back" echo 'Arnold once said: "I\'ll be back"'; // 输出: You deleted C:\*.*? echo 'You deleted C:\\*.*?'; // 输出: You deleted C:\*.*? echo 'You deleted C:\*.*?'; // 输出: This will not expand: \n a newline echo 'This will not expand: \n a newline'; // 输出: Variables do not $expand $either echo 'Variables do not $expand $either'; ?>单引号定义法 表达单引号或反斜线时需要在前面加 \ 进行转义 不对其中的变量名作解析
<?php $a="hello"; echo '$a'; //输出$a而不是$a的值hello ?>双引号定义法 会对其中的变量名作解析
<?php $a='hello'; echo "this will print $a"; //输出 this will print hello ?>双引号中的单引号只是单纯的单引号,仍会对变量名作解析
<?php $a = "1"; $var = "this is a test about'$a'"; echo $var; ?>字符串长度strlen($变量名)
<?php $a="hello"; echo strlen($a); //输出5 ?>字符串拼接运算符 .
<?php $txt1="Hello world!"; $txt2="What a nice day!"; echo $txt1 . " " . $txt2; ?>字符串查找strpos(字符串,被查找字符串),如果找到就返回第一个匹配字符的下标索引
<?php echo strpos("Hello world!","world"); //返回 6 ?>== 只比较值不比较类型 === 既比较值也比较类型
define(“常量名”,常量值)
<?php // 区分大小写的常量名 define("GREETING", "欢迎访问 Runoob.com"); echo GREETING; // 输出 "欢迎访问 Runoob.com" echo '<br>'; echo greeting; // 输出 "greeting" ?>使用array()函数创建数组 使用count($数组名)获取数组长度
<?php $MyArray=array("a","b","c"); echo $MyArray[2]; //显示 c echo count($MyArray); //显示 3 ?>PHP的命名还真是因吹斯听,一会超级一会魔术的
_LINE_ _FILE_ _FUNCTION_ _DIR_ 等等等等1. $_GET变量 用于收集来自GET方法的键值对 使用$_GET[键名]获取值
示例 用GET方法提交键值对的GETTest.html
<html> <head> <meta charset="utf-8"> <title></title> </head> <body> <form action="GETTest.php" method="get"> 名字: <input type="text" name="fname"> 年龄: <input type="text" name="age"> <input type="submit" value="提交"> </form> </body> </html>接收键值对的GETTest.php
欢迎 <?php echo $_GET["fname"]; ?>!<br> 你的年龄是 <?php echo $_GET["age"]; ?> 岁。访问GETTest.html,输入信息,点击提交 URL栏变为 F12查看 响应页面 2. $_POST变量 用于收集来自GET方法的键值对 使用$_POST[键名]获取值
示例 POSTTest.html
<html> <head> <meta charset="utf-8"> <title></title> </head> <body> <form action="POSTTest.php" method="post"> 名字: <input type="text" name="fname"> 年龄: <input type="text" name="age"> <input type="submit" value="提交"> </form> </body> </html>POSTTest.php
欢迎 <?php echo $_POST["fname"]; ?>!<br> 你的年龄是 <?php echo $_POST["age"]; ?> 岁。访问POSTTest.html,输入信息,点击提交 URL变为POSTTest.php,但其后没有参数 F12查看 响应页面 3. $_REQUEST变量 预定义的 $_REQUEST 变量包含了 $_GET、$_POST 和 $_COOKIE 的内容 也就是说上面的两个php文件中的$_GET和$_POST可以全部用$_REQUEST替代,效果一样
首先用phpinfo()检查一下有没有安装MySQLi 面向对象的连接方式
<?php $servername = "localhost"; $username = "username"; $password = "password"; // 创建连接 $conn = new mysqli($servername, $username, $password); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } echo "连接成功"; ?>面向过程的连接方式
<?php $servername = "localhost"; $username = "username"; $password = "password"; // 创建连接 $conn = mysqli_connect($servername, $username, $password); // 检测连接 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "连接成功"; ?>连接在脚本执行完后会自动关闭 或者你可以使用以下代码手动关闭
$conn->close(); //面向对象 mysqli_close($conn); //面向过程我比较喜欢面向对象,所以以下省略掉面向过程的方式
我偏好使用MySQL的shell 不作详解 假设已创建好数据库phptest和其中的表userpass
访问此php文件后再进入MySQL检查一下
regist.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Regist Page</title> </head> <body> <form action="regist.php" method="post"> <label for="username">用户名:</label><input type="text" id="username" name="yonghuming"> //向服务器提交的是name:value键值对 <label for="pass">密码:</label><input type="text" id="pass" name="mima"> <input type="submit" id="btn" value="注册"> //在页面上显示的文字是“注册” </form> </body> </html>regist.php
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "phptest"; $name=$_REQUEST["yonghuming"]; $pass=$_REQUEST["mima"]; //接收传入的键值对 // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } $sql = "INSERT INTO userpass (username,password) VALUES ('$name','$pass')"; if ($conn->query($sql) === TRUE) { echo "新记录插入成功"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close(); ?>访问regist.html,输入信息,注册 查看MySQL
