PHP( Hypertext Preprocessor) 超文本預處理器
PHP 是一種創(chuàng)建動態(tài)交互性站點的強有力的服務器端腳本語言位迂。
PHP安裝
1.本機地址:127.0.0.1 也可以用localhost代替, 也可以通過局域網(wǎng)IP代替
2.輸入到網(wǎng)址欄
3.ok,找到安裝的xampp地址吓揪,打開文件夾下的htdocs創(chuàng)建php文件夾埂陆。我們以后所有寫的php文件都放在這里
4.php目錄里一定要用英文名捐友,不能出現(xiàn)漢字
5.php文件的后綴是.php
6.php文件需要服務器環(huán)境在张。所以我們要用http協(xié)議才可以使php文件運行
7.php文件中可以寫html杭抠,寫php要把php語言放到<?php?>標簽中
8.php中調(diào)試語言之一: echo XXX(注意空格)
<?php
echo "內(nèi)容"
?>
PHP基礎語法
1.注釋
單行注釋://(常用)或者 #(不常用)
多行注釋:/**/
2.聲明變量:
$變量名=變量
規(guī)則與js聲明變量一致
<?php
$sum=15+'12'
$sum='12'+'13'
?>
php中的+只有加法的作用泼各,想要連接數(shù)據(jù),要用點'.'
<?php
//for循環(huán)
//for循環(huán)中的循環(huán)變量履肃,每用一次就要加個$
for($i=0;$i<10;$i++){
echo “2丫 $i 號</br>”
//'2丫 $i 號</br>'
}
?>
php中雙引號自帶解析變量功能,注意變量兩邊的空格,只能解析變量,
//不能解析運算.單引號是純字符串.如果不想用空格也可以用大括號{}
&取址運算符
取出&后面變量的內(nèi)存地址,賦值給前面的變量,修改該值會影響前面的賦值結果
<?php
$age=18;
$yourAge=$age;
$age=19;
echo $yourAge //不加取址是18 加&是19
?>
變量的變量
<?php
$a="one";
$$a="two";
$$$a="three";
$$$$a="four";
echo $two;
echo "<hr/>";
?>
php中的函數(shù)與js中的函數(shù)一樣,但是函數(shù)的參數(shù)要加$
<?php
function fn(&$a){
$a*=10;
}
$i=3;
fn($i);
echo $i; //不加取址是3 加&了是30
echo "<hr/>";
?>
php中的數(shù)組分為3種,分別是索引數(shù)組,關聯(lián)數(shù)組和多維數(shù)組
索引數(shù)組 下標是0,1,2,3
<?php
$arr=[1,2,3,4];
print_r($arr); //打印數(shù)組用print_r
echo "<br/>";
echo count($arr); //獲取數(shù)組的長度
echo "<br/>";
echo $arr[0]; //獲取數(shù)組中某個值的方法與js一致
echo "<hr/>";
?>
關聯(lián)數(shù)組
關聯(lián)數(shù)組的下標不再是默認的0.1.2而是我們自定義的
<?php
$arr2=array("1號"=>"小明","2號"=>"小紅","3號"=>"小剛");
print_r($arr2);
echo "<br/>";
echo $arr2["2號"];
echo "<hr/>";
?>
常量
類似于變量,但是定義過常量就無法再更改值.用define()方法來定義常量.常量的命名通常大寫
<?php
define("NAME","duan");
echo NAME; //常量在php中任何位置都可以使用,一旦聲明不可以更改
echo "<hr/>";
?>
魔術常量(調(diào)試用的,了解即可)
<?php
echo '這是第 " ' . __LINE__ . ' " 行'; //返回當前的行 20
echo "<br/>";
function a(){
echo __FUNCTION__;
}
a();
?>
布爾值
<?php
$bol=FALSE;
$bol2=true;
echo $bol."<br/>".$bol2;
//php中false不打印,true轉化為1,大小寫不敏感.
?>
gettype()用來檢測數(shù)據(jù)類型
<?php
echo gettype($bol); //Boolean 布爾值
echo "<br/>";
echo gettype(1); //integer 整數(shù)
echo "<br/>";
echo gettype(1.2); //double 浮點數(shù)
echo "<br/>";
echo gettype("abc"); //string 字符串
?>
打印數(shù)組
<?php
$arr=Array(1,"b",345,"abc");
print_r($arr); //Array ( [0] => 1 [1] => b [2] => 345 [3] => abc )
//打印數(shù)組 //索引數(shù)組
echo "<br/>";
var_dump($arr); //array(4) { [0]=> int(1) [1]=> string(1) "b" [2]=> int(345) [3]=> string(3) "abc" }
//打印數(shù)組 var_dump會把數(shù)組中的每一個值的類型也打印出來
?>
函數(shù)作用域
<?php
$a=1;
function fn(){
$a=2;
global $a; //引用全局變量要加global
echo $a; //函數(shù)內(nèi)部如果要用外部變量不能直接使用仔沿,要加global。
}
fn();
?>
函數(shù)默認值
<?php
function fn($a,$b=2){
return $a."and".$b;
}
echo fn(1);
echo "<br/>";
?>
php文件引入
include遇到錯誤只會提示錯誤,不會阻止后面代碼的運行
require遇到錯誤則會中斷執(zhí)行代碼,阻止后面代碼的運行
include("test.php");
include_once("test.php"); //只引入一遍
require("test.php");
超全局變量
<?php
print_r($_SERVER);
echo $_SERVER[SERVER_NAME]; //返回localhost
echo $_SERVER[REQUEST_METHOD]; //返回GET
//SERVER 保存了當前運行環(huán)境的相關信息
print_r($GLOBALS); //$GLOBALS返回所有超全局變量
?>
get和post的區(qū)別
1.get方式傳值的大小最多2兆,post無限制
2.get用來讀取數(shù)據(jù),post可以寫入數(shù)據(jù)
3.get傳入的數(shù)據(jù)會拼接在地址欄上,所以安全性不高.post更安全.
<?php
//$_GET $_POST用來獲取get方法或者post方法傳入的數(shù)據(jù)尺棋。
//$_REQUEST可以獲取通過get或者post傳入的數(shù)據(jù)封锉,不推薦使用,傳值速度慢膘螟。
print_r($_GET); //$_GET用來獲取get方法傳入的數(shù)據(jù) get會拼接到地址欄上,
echo "<br/>"; //最大傳2兆 (URL最大2兆)
echo "用戶名:".$_GET['username']."密碼:".$_GET['pwd'];
print_r($_POST); //$_POST用來獲取post方法傳入的數(shù)據(jù)
echo "<br/>"; //post安全性更高
echo "用戶名:".$_POST['username']."密碼:".$_POST['pwd'];
print_r($_REQUEST); //get和post都可以獲取到
echo "<br/>"; //傳值速度慢(不推薦使用)
echo "用戶名:".$_REQUEST['username']."密碼:".$_REQUEST['pwd'];
?>
數(shù)組數(shù)組(array)
向數(shù)組后面添加值
<?php
//索引數(shù)組
$arr=Array(1,2,3,4,5,6);
$arr[]=7;
print_r($arr);
//關聯(lián)數(shù)組
$arr2=Array(
"xiaoming"=>"a",
"xiaohong"=>"b",
"xiaogang"=>"c",
);
$arr2["xiaolv"]="d";
print_r($arr2);
?>
創(chuàng)建指定范圍的數(shù)組
<?php
//$arr3=range("a","z"); //a到z
//$arr3=range(1,9); //1到9
$arr3=range("A","z");
print_r($arr3);
echo "<br/>";
echo count($arr3); //count方法用來獲取數(shù)組的長度
echo "<br/>";
unset($arr3[0]); //刪除數(shù)組中的元素,連同下標一起刪除
print_r($arr3);
?>
數(shù)組的遍歷
<?php
$arr4=Array(
"a"=>"zxs",
"b"=>"mjh",
"c"=>"lal",
"d"=>"wbd",
"e"=>"dsb",
"f"=>"dhq",
);
foreach($arr4 as $key=>$value){
echo "第".$key."個".$value."<br/>";
}
?>
數(shù)組的排序
<?php
sort($arr4); //升序
print_r($arr4);
echo "<br/>";
rsort($arr4); //降序
print_r($arr4);
?>
字符串與數(shù)組的轉換
<?php
echo implode(",",$arr4); //數(shù)組轉字符串
echo "<br/>";
$str="abcdef";
print_r(explode(",",$str));
?>
字符串(string)
strpos 獲取指定字符在字符串中的位置
<?php
$str="Stay foolish stay hungry";
echo strpos($str,"stay"); //13
echo "<br/>";
echo stripos($str,"stay"); //0 不區(qū)分大小寫
?>
替換字符串
<?php
echo str_replace("stay","abc",$str); //Stay foolish abc hungry
echo "<br/>";
echo str_ireplace("stay","abc",$str); //abc foolish abc hungry 不區(qū)分大小寫
?>
截取字符串
<?php
echo substr($str,"3"); //y foolish stay hungry
echo "<br/>";
echo substr($str,"3","5"); //y foo
?>
查找字符串,連同后面的所有字符一起返回
<?php
echo strstr($str,"stay"); //stay hungry
echo "<br/>";
echo stristr($str,"stay"); //Stay foolish stay hungry //不區(qū)分大小寫
?>
字符串長度
<?php
echo strlen($str); //24
?>
大小寫轉換
<?php
echo strtoupper($str); //STAY FOOLISH STAY HUNGRY 轉換成大寫
echo "<br/>";
echo strtolower($str); //stay foolish stay hungry 轉換成小寫
?>
空格轉為換行
<?php
$str="stay
foolish";
echo nl2br("$str");
?>
去除首尾空格
<?php
echo trim($str2); //str 去除首尾空格
echo ltrim($str2); //str 去除左邊空格
echo rtrim($str2); //str 去除右邊空格
?>
tmlspecialchars()把標簽轉換為字符串
strip_tags() 刪除字符串中的標簽
<?php
echo "<h1>標題</h1>";
echo htmlspecialchars("<h1>標題</h1>"); //<h1>標題</h1> 不解析標簽 斯白受差死
echo "<br/>";
echo strip_tags("<h1>標題</h1>") //標題 忽略標簽
?>