PHP全棧學習筆記2

PHP全棧學習筆記2

php概述php

什麼是php,PHP語言的優點,PHP5的新特性,PHP的發展趨勢,PHP的應用領域。html

PHP是超文本預處理器,是一種服務器端,跨平臺,HTML嵌入式的腳本語言,具備c語言,Java語言,和Perl語言的特色,是一種被普遍應用的開源式的多用途腳本語言,適合web開發。mysql

PHP是b/s體系結構,屬於三層結構,PHP的好處,開發源代碼軟件,安全性高,跨平臺特性,支持普遍的數據庫,易學性,執行速度快,免費,模板化,支持面向對象與過程,內嵌zend加速引擎。程序員

PHP5的新特性,構造函數和析構函數,對象的引用,克隆,私有等,接口,抽象類,_call,_set,_get,靜態成員。web

PHP應用,中小型網站的開發,web管理系統,企業級應用開發,多媒體系統開發等。sql

PHP的擴展庫,內置標準擴展庫,PHP5,spl,sqlite,dom,mysql等,須要在php.ini文件來完成。shell

php.ini找.dll,全部擴展庫。數據庫

學習語言的方法,明確本身的學習目標和方向,紮實的基礎,多實踐,多思考,多請教等。apache

建立網站,明確網站主題,收集材料,規劃網站,製做網站,上傳,宣傳,維護。數組

PHP開發工具,dreamweaver,zendstudio,editplus2等。

image.png

使用appserv組合包,完成apache+mysql+php+phpmyadmin的安裝與配置。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>第一個PHP程序</title>
</head>
<body>
<?php
    echo "Hello World!!!";
?>
</body>
</html>

php的標記風格,註解分類,數據類型,常量,變量,運算符,表達式,函數,編碼規範

xml風格:
<?php
 echo "dashucoding";
?>

腳本風格:
<script language="php">
 echo "dashucoding";
</script>

簡短風格:
<?
 echo 'dashucoding';
?>

asp風格:
<%
 echo 'dashucoding';
%>

共4種
註解
// 單行註解
/**/ 多行註解
# shell風格的註解

php數據類型:標量數據類型,複合數據類型,特殊數據類型,轉換數據類型。

8種原始類型,分4中標量類型,boolean布爾型,integer整型,float/double浮點型,string字符串型;兩種複合類型,arrray數組,object對象;兩種特殊類型,resource資源,null。

標量數據類型是數據結構中最基本的單元,只能存儲一個數據,PHP標量數據類型有4種。

單引號和雙引號,雙引號能夠將變量自動替換成實際數值,而引號將變量按照普通字符串輸出。

定義字符串的三種方式:單引號,雙引號,界定符。

轉義字符

\n 換行
\r 回車
\t 水平製表符
\\ 反斜槓
\$ 美圓符號
\' 單引號
\'' 雙引號
界定符格式:
$string = <<< str
輸出字符串
str;

<?php
 echo <<< str
  字符串
 str;
?>
界定符中結束標識符必需要單獨另起一行,並不能夠用空格。

複合數據類型有 兩種,一種爲 數組,一種爲 對象。

$array = ('value1','value2',...);

$array[key] = 'value';

$array = array(key1 => value1, key2 => value2 ...);

特殊數據類型包含 資源 和 空值 兩種。

資源是一種特殊的變量,可叫句柄,保存在外資源的一個引用,經過專門的函數來創建和使用,null爲特殊的值,表示變量沒有值。

使用資源類型時,系統會自動啓動垃圾回收機制,釋放再也不使用的資源。

空值出現的狀況,尚未賦值,被賦值爲null,被unset()函數處理過的變量。

轉換數據類型

boolean 轉換布爾型
null,0,和未賦值或數組爲false,false爲0,true爲1
string 轉換字符型
integer 轉換整型
float 轉換浮點型
array 轉換數組
object 轉換對象

settype()用於類型轉換,將指定的變量轉換爲指定的數據類型

bool settype(mixed var, string type)
第一個參數爲指定的變量,第二個參數爲指定的類型,參數type爲boolean,float,integer,array,object,null,string。

使用integer操做符可以能夠直接輸出轉換後的變量類型,使用settype()返回的是boolean類型。第一種原變量不會發生變化,第二種原變量被改變了。

檢測數據類型

is_bool檢測變量是不是布爾類型
is_string檢測變量是不是字符串類型
is_float/is_double 檢測變量是否爲浮點類型
is_null 檢測變量是否爲整數
is_array 檢測變量是否爲數組
is_object 檢測變量是對象類型
is_numeric 檢測變量是否爲數字
is_integer/is_int 檢測變量是否爲整數

php常量,聲明和使用常量,預約義常量

常量是不可變的值,被定義後,無論怎樣都不會被改變。

使用define()函數來定義常量

define(string constant_name, mixed value, case_sensitive = true)
函數定義一個常量

常量名稱, 常量值, 指定是否大小寫敏感

mixed constant(string const_name);
函數動態獲取常量的值,常量名直接獲取,另外一種爲constant()

判斷一個常量是否被定義:
bool defined(string constant_name);

預約義常量

__FILE__ 文件名
__LINE__ 程序員行數
PHP_VERSION 程序的版本
PHP_OS 操做系統名稱
TRUE FALSE NULL
E_ERROR E_WARNING E_PARSE E_NOTICE

php變量,聲明和使用變量,變量的做用域,可變變量,預約義變量

變量是在程序執行過程當中數值中能夠變化的量

php預約義變量

預約義變量能夠獲取用戶會話,用戶操做系統等信息。

$_SERVER['SERVER_ADDR'] 當前腳本所在的服務器的ip地址
$_SERVER['SERVER_NAME'] 服務器主機名
$_SERVER['REQUEST_METHOD'] 訪問頁面時的請求方法
$_SERVER['REMOTE_ADDR'] 正在瀏覽當前頁面用戶的IP地址
$_SERVER['REMOTE_HOST'] 正在瀏覽當前頁面用戶的主機名
$_SERVER['REMOTE_PORT'] 服務器使用的端口
$_SERVER['SCRIPT_FILENAME'] 當前執行腳本的絕對路徑名
$_SERVER['SERVER_PORT'] 服務器所使用的端口
$_SERVER['SERVER_SIGNATURE'] 服務器版本和虛擬主機名的字符串 
$_SERVER['DOCUMENT_ROOT'] 當前運行腳本所在的文檔根目錄
$_COOKIE 經過HTTPCookie傳遞到腳本的信息
$_SESSION 包含與全部會話變量有關的信息
$GLOBALS 已定義全局變量組成的數組
$_POST 經過POST方法傳遞的參數的相關信息
$_GET 經過GET方法傳遞的參數的相關信息

php運算符

算術運算符,字符串運算符,賦值運算符,位運算符,邏輯運算符,比較運算符,錯誤控制運算符,三元運算符,優先級。

image.png

image.png

image.png

image.png

image.png

錯誤控制運算符

@用於對錯誤信息進行屏蔽而已

<?php
  $err = @(3/0);
?>

三元運算符-三目運算符

<?php
$value=10;
echo ($value == true)? dashu : dashucoding;
?>

image.png

php函數,定義和調用函數,函數間的傳遞參數,函數中返回值,變量函數,對函數的引用,取消引用。

定義和調用函數,將功能寫在代碼塊中:

function name($str1,...){
}

函數傳參,被傳入的參數爲實參,定義的參數爲形參。
參數傳遞有三種:

  1. 按照值傳遞
  2. 按照引用傳遞
  3. 默認參數
<?php
function add($m){
 $m = $m+1;
 echo "體內".$m;
}
$m=1;
add($m);
echo "體外".$m;
?>

結果, 函數內:$m爲2,體外爲1

傳引用 使用&
<?php
function add(&$m){
 $m = $m+1;
 echo "體內".$m;
}
$m=1;
add($m);
echo "體外".$m;
?>

從函數中返回值return()。

變量函數,對函數的引用,取消引用。

<?php
function &add($a=0){
 return $a;
}
$str = &add('dashucoding');
echo $str;
?>

unset()函數取消引用,用於斷開變量名和變量內容之間的綁定,而不是銷燬變量的內容。

什麼是PHP編碼規範,書寫規則和命名規則

image.png

PHP的數據類型,常量,變量,運算符,表達式,自定義函數,數據類型之間的轉換,系統預約義常量,變量,運算符的優先級等。

流程控制語句

if語句,if...else語句,elseif語句,switch...case語句

image.png

image.png

image.png

image.png

while循環,do...while循環,for循環,foreach循環,break/continue語句等。

break/continue語句,break關鍵字終止當前的循環,跳出多重循環,break $num; continue只是終止本次循環。

foreach($arr as $key => $value){
 echo $key.'=>';
 foreach($value as $va){
  echo ' " '.$va.' " ';
 }
 echo '<br>';
}

字符串,單引號,雙引號,字符串鏈接符,字符串操做

字符串是由零個或多個字符組成的一個集合

單引號和雙引號的區別,單引號中的內容是隻能被做爲普通字符串處理,雙引號的做用能夠被解釋。sql查詢時,全部字符串都必須是單引號。

字符串操做:

image.png

trim()函數去除字符串左右兩邊的空格和特殊字符
ltrim()去除左邊的空格和特殊字符
rtrim()去除右邊的空格和特殊字符

string trim(string str [,string charlist]);

string ltrim( string str [,string charlist]);

String rtrim(string str [,string charlist]);

image.png

字符串的三種定義方法:

  1. 單引號
  2. 雙引號
  3. 界定符
//轉義、還原字符串數據
addslashes()函數
string addslashes (string str)

stripslashes()函數
string stripslashes(string str);

addcslashes()函數
string addcslashes (string str, string charlist)

stripcslashes()函數
string stripcslashes (string str)

int strlen(string str)
獲取指定字符串str的長度

string substr ( string str, int start [, int length])
截取字符串

比較字符串
strcmp()函數按照字節進行比較
strcmp()和strcasecmp()
int strcmp ( string str1, string str2)

strnatcmp()函數按照天然排序法進行比較
int strnatcmp ( string str1, string str2)

strncmp()函數指定從源字符串的位置開始比較
int strncmp(string str1,string str2,int len)

查找字符串strstr()函數

string strstr(string haystack, string needle)
// strstr()函數獲取上傳圖片的後綴
<form method="post" action="index.php" enctype="multipart/form-data">
 <input type="hidden" name="action" value="upload"/>
 <input type="file" name="u_file"/>
 <input type="submit" value="上傳"/>
</form>
<?php
 if($_POST[action] == "upload") {
  $file_path="./uploads\\";
  $picture_name=$_FILES[u_file][name];
  $picture_name=strstr($picture_name,".");
  if($picture_name != ".jpg"){
   echo"<script>alert();window.location.href="index.php";</script>";
  }elseif($_FILES[u_file][tmp_name]{
   move_uploaded_file();
  }else
   echo"";
  }
 }
?>
<body>
<center>
<label>請選擇要上傳的圖片(圖片格式爲.jpg):</label>
<form method="post" action="index.php" enctype="multipart/form-data">
    <input type="hidden" name="action" value="upload" />
    <input type="file" name="u_file"/>
    <input type="submit" value="上傳" />
</form>
<?php
    if($_POST[action] == "upload"){         //判斷提交按鈕是否爲空
        $file_path = "./uploads\\";         //定義圖片在服務器中的存儲位置
        $picture_name=$_FILES[u_file][name];    //獲取上傳圖片的名稱
        $picture_name=strstr($picture_name , ".");  //經過strstr()函數截取上傳圖片的後綴
        if($picture_name!= ".jpg"){                 //根據後綴判斷上傳圖片的格式是否符合要求
            echo "<script>alert('上傳圖片格式不正確,請從新上傳'); window.location.href='index.php';</script>";
        }else if($_FILES[u_file][tmp_name]){
            move_uploaded_file($_FILES[u_file][tmp_name],$file_path.$_FILES[u_file][name]);     //執行圖片上傳
            echo "圖片上傳成功!";
        }
        else
            echo "上傳圖片失敗";
        }
?>
</center>
</body>

substr_count()函數檢索字符串出現的次數

int substr_count(string haystack, string needle)

<?php
$str="";
echo substr_count($str,"");
?>

替換字符串

str_ireplace()函數使用新的字符串替換原始字符串中被指定要替換的字符串。
mixed str_ireplace(mixed search,mixed replace, mixed subject[,int &count])

substr_replace()函數
對指定字符串中的部分字符串進行替換

格式化字符串
string number_format(float number,[int 
num_decimal_places],[string dec_seperator],string 
thousands_ seperator)

分割字符串
array explode(string separator,string str,[int limit])

合成字符串
string implode(string glue, array pieces)
<body>
<?php
$str="\r\r(:@_@   dashu   @_@:)      ";
echo trim($str);
echo "<br>";
echo trim($str,"\r\r(: :)");
?>
</body>
<?php
$content = "北京,上海,天津,重慶,河北,山西,遼寧,吉林,黑龍江,江蘇,浙江,安徽,福建,江西,山東,河南,湖北,湖南,其餘";
$data=explode(",",$content);
for($index=0;$index<count($data);$index++){                         //數組循環
echo $data[$index];
echo "</br>";
}
?>

結言

好了,歡迎在留言區留言,與你們分享你的經驗和心得。

感謝你學習今天的內容,若是你以爲這篇文章對你有幫助的話,也歡迎把它分享給更多的朋友,感謝。

感謝!承蒙關照!您真誠的讚揚是我前進的最大動力!

image

image

相關文章
相關標籤/搜索