php代码审计步骤,php代码审计(一)-----调试函数
本篇文章給大家分享的內容是調試函數,有興趣的朋友可以看一下,也可以給有需要幫助的同學一點參考
兩種最基本的輸出方法echo和print/**
*echo 是一個語言結構,有無括號均可使用:echo 或 echo()
*///打印字符串echo "hello";
echo("hello");//打印變量$text="learn php";
echo $text;
echo($text);/**
print 也是語言結構,有無括號均可使用:print 或 print()
*///打印字符串print "hello";
print("hello");//打印變量$text="learn php";
print $text;
print($text);
echo 和 print 之間的差異:
echo - 能夠輸出一個以上的字符串
print - 只能輸出一個字符串,并始終返回 1
提示:echo 比 print 稍快,因為它不返回任何值雙引號和單引號的區別
雙引號解析變量
單引號不解析變量$str1="hello"; $str2="php"; echo "$str1";//輸出:hello echo '$str2';//輸出:$str2print_r() 函數
print_r() 顯示關于一個變量的易于理解的信息。如果給出的是 string、integer
或 float,將打印變量值本身。如果給出的是 array,將會按照一定格式顯示鍵
和元素。object 與數組類似。
記住,print_r() 將把數組的指針移到最后邊。使用 reset() 可讓指針回到開始處。//打印string$str1="hello";
print_r($str1);
print_r("hello");//打印integer$num=1024;
print_r($num);
print_r(1024);//打印float$num=1024.1024;
print_r($num);
print_r(1024.1024);//打印array
$cars=array("Volvo","BMW","Toyota");
print_r($cars);/*打印結果
Array ( [0] => Volvo [1] => BMW [2] => Toyota )
*/*var_dump() 函數
var_dump()方法,判斷一個變量的類型與長度,并輸出變量的數值,如果變量有值,則輸出是變量的值,并返回數據類型。用于精確調試。
顯示關于一個或多個表達式的結構信息,包括表達式的類型與值。數組將遞歸展開值,通過縮進顯示其結構。$cars=array("Volvo","BMW","Toyota");
var_dump($cars); /* 打印結果
E:\wamp64\www\test.php:56:
array (size=3)
0 => string 'Volvo' (length=5)
1 => string 'BMW' (length=3)
2 => string 'Toyota' (length=6)
*/
$n=null;
var_dump($n); /*打印結果
E:\wamp64\www\test.php:59:null
*/var_export() 函數
var_export() 函數返回關于傳遞給該函數的變量的結構信息,它和 var_dump() 類似,不同的是其返回的表示是合法的 PHP 代碼。var_export必須返回合法的php代碼, 也就是說,var_export返回的代碼,可以直接當作php代碼賦值個一個變量。 而這個變量就會取得和被var_export一樣的類型的值。
注意三點:
1.var_export()會一直保留著結構化形式存儲數據.
2.但是特別請記住:此時的變量值的類型已是字符串了($var),不能再以數組的方式取出里面的值來
3. var_export 對于資源型的變量會輸出 NULL$cars=array("Volvo","BMW","Toyota");
var_export($cars);
/*打印結果
array ( 0 => 'Volvo', 1 => 'BMW', 2 => 'Toyota', )
*/debug_zval_dump()函數
debug_zval_dump() 輸出結果跟 var_dump 類似,唯一增加的一個值是 refcount,就是記錄一個變量被引用了多少次,這是 php 的 copy on write (寫時復制) 的機制的一個重要特點。$cars=array("Volvo","BMW","Toyota");
debug_zval_dump($cars);
/*打印結果 array(3) refcount(2){ [0]=> string(5) "Volvo" refcount(1) [1]=> string(3) "BMW" refcount(1) [2]=> string(6) "Toyota" refcount(1) }
*/exit()函數
終止程序運行兩種最基本的輸出方法echo和print/**
*echo 是一個語言結構,有無括號均可使用:echo 或 echo()
*///打印字符串echo "hello";
echo("hello");//打印變量$text="learn php";
echo $text;
echo($text);/**
print 也是語言結構,有無括號均可使用:print 或 print()
*///打印字符串print "hello";
print("hello");//打印變量$text="learn php";
print $text;
print($text);
echo 和 print 之間的差異:
echo - 能夠輸出一個以上的字符串
print - 只能輸出一個字符串,并始終返回 1
提示:echo 比 print 稍快,因為它不返回任何值雙引號和單引號的區別
雙引號解析變量
單引號不解析變量$str1="hello"; $str2="php"; echo "$str1";//輸出:hello echo '$str2';//輸出:$str2print_r() 函數
print_r() 顯示關于一個變量的易于理解的信息。如果給出的是 string、integer
或 float,將打印變量值本身。如果給出的是 array,將會按照一定格式顯示鍵
和元素。object 與數組類似。
記住,print_r() 將把數組的指針移到最后邊。使用 reset() 可讓指針回到開始處。//打印string$str1="hello";
print_r($str1);
print_r("hello");//打印integer$num=1024;
print_r($num);
print_r(1024);//打印float$num=1024.1024;
print_r($num);
print_r(1024.1024);//打印array
$cars=array("Volvo","BMW","Toyota");
print_r($cars);/*打印結果
Array ( [0] => Volvo [1] => BMW [2] => Toyota )
*/*var_dump() 函數
var_dump()方法,判斷一個變量的類型與長度,并輸出變量的數值,如果變量有值,則輸出是變量的值,并返回數據類型。用于精確調試。
顯示關于一個或多個表達式的結構信息,包括表達式的類型與值。數組將遞歸展開值,通過縮進顯示其結構。$cars=array("Volvo","BMW","Toyota");
var_dump($cars); /* 打印結果
E:\wamp64\www\test.php:56:
array (size=3)
0 => string 'Volvo' (length=5)
1 => string 'BMW' (length=3)
2 => string 'Toyota' (length=6)
*/
$n=null;
var_dump($n); /*打印結果
E:\wamp64\www\test.php:59:null
*/var_export() 函數
var_export() 函數返回關于傳遞給該函數的變量的結構信息,它和 var_dump() 類似,不同的是其返回的表示是合法的 PHP 代碼。var_export必須返回合法的php代碼, 也就是說,var_export返回的代碼,可以直接當作php代碼賦值個一個變量。 而這個變量就會取得和被var_export一樣的類型的值。
注意三點:
1.var_export()會一直保留著結構化形式存儲數據.
2.但是特別請記住:此時的變量值的類型已是字符串了($var),不能再以數組的方式取出里面的值來
3. var_export 對于資源型的變量會輸出 NULL$cars=array("Volvo","BMW","Toyota");
var_export($cars);
/*打印結果
array ( 0 => 'Volvo', 1 => 'BMW', 2 => 'Toyota', )
*/debug_zval_dump()函數
debug_zval_dump() 輸出結果跟 var_dump 類似,唯一增加的一個值是 refcount,就是記錄一個變量被引用了多少次,這是 php 的 copy on write (寫時復制) 的機制的一個重要特點。$cars=array("Volvo","BMW","Toyota");
debug_zval_dump($cars);
/*打印結果 array(3) refcount(2){ [0]=> string(5) "Volvo" refcount(1) [1]=> string(3) "BMW" refcount(1) [2]=> string(6) "Toyota" refcount(1) }
*/exit()函數
終止程序運行
相關推薦:
總結
以上是生活随笔為你收集整理的php代码审计步骤,php代码审计(一)-----调试函数的全部內容,希望文章能夠幫你解決所遇到的問題。