在php中獲取數(shù)組長(zhǎng)度方法很簡(jiǎn)單,php為我們提供了兩個(gè)函數(shù)可以計(jì)算一維數(shù)組長(zhǎng)度,如count,sizeof都可以直接統(tǒng)計(jì)數(shù)組長(zhǎng)度哦,下面我們來(lái)看幾個(gè)實(shí)例吧。
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的海城網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
php如何獲取數(shù)組的長(zhǎng)度,使用php函數(shù)count(),或是sizeof()
例如:
復(fù)制代碼
代碼如下:
$arr
=
Array('0','1','2','3','4');
echo
count($arr);
//
輸出
5
$arr
=
array('A','B','C');
echo
sizeof($arr);
//輸出3
sizeof()和count()具有同樣的用途,這兩個(gè)函數(shù)都可以返回?cái)?shù)組元素個(gè)數(shù).可以得到一個(gè)常規(guī)標(biāo)量變量中的元素個(gè)數(shù),如果傳遞給這個(gè)函數(shù)的數(shù)組是一個(gè)空數(shù)組,或者是一個(gè)沒(méi)有經(jīng)過(guò)設(shè)定的變量,返回的數(shù)組元素個(gè)數(shù)就是0;
兩函數(shù)功能一樣,手冊(cè)上講,sizeof()是函數(shù)count()的別名。
那么多維數(shù)組長(zhǎng)度要怎么統(tǒng)計(jì)呢?繼續(xù)看例子
比如你讀取的數(shù)組是一個(gè)二維數(shù)組:
復(fù)制代碼
代碼如下:
?php
$arr=array(
0=array('title'
=
'新聞1',
'viewnum'
=
123,
'content'
=
'ZAQXSWedcrfv'),
1=array('title'
=
'新聞2',
'viewnum'
=
99,
'content'
=
'QWERTYUIOPZXCVBNM')
);
?
如果你想統(tǒng)計(jì)數(shù)組$arr的長(zhǎng)度,也就是說(shuō)該二維數(shù)組只有兩條新聞,你想要的數(shù)字也是2,但是如果使用count($arr)不同版本的php,統(tǒng)計(jì)的結(jié)果是不一樣的;
后來(lái)在php手冊(cè)中發(fā)現(xiàn),count函數(shù)還有第二個(gè)參數(shù),解釋如下:
count函數(shù)有兩個(gè)參數(shù):
0(或COUNT_NORMAL)為默認(rèn),不檢測(cè)多維數(shù)組(數(shù)組中的數(shù)組);
1(或COUNT_RECURSIVE)為檢測(cè)多維數(shù)組,
所以如果要判斷讀取的數(shù)組$arr是不是有新聞信息,就要這樣寫(xiě)了:
復(fù)制代碼
代碼如下:
?php
if(is_array($arr)
count($arr,COUNT_NORMAL)0
)
{
.....
}
else
{
.....
}
?
你可以使用這樣的代碼來(lái)測(cè)試該函數(shù):
復(fù)制代碼
代碼如下:
?php
$arr=array(
0=array('title'
=
'新聞1',
'viewnum'
=
123,
'content'
=
'ZAQXSWedcrfv'),
1=array('title'
=
'新聞2',
'viewnum'
=
99,
'content'
=
'QWERTYUIOPZXCVBNM')
);
echo
'不統(tǒng)計(jì)多維數(shù)組:'.count($arr,0);//count($arr,COUNT_NORMAL)
echo
"br/";
echo
'統(tǒng)計(jì)多維數(shù)組:'.count($arr,1);//count($arr,COUNT_RECURSIVE)
?
到最后輸出時(shí)用substr截取一下就行了
例如取得title的字符后賦到$title,然后$subtitle=substr($title,0,30)."..."
$subtitle就是頭30個(gè)字符
獲取一維數(shù)組:
count()和sizeof() 都可以直接統(tǒng)計(jì)一維數(shù)組長(zhǎng)度。示例如下:
$arr = Array('0','1','2','3','4','5','6','7','8','9');?????? echo count($arr);??? // 輸出10
$arr = array('蘋(píng)果','香蕉','桔子','西瓜','梨','葡萄');?????????????? echo sizeof($arr);?? // 輸出6
獲取二維數(shù)組長(zhǎng)度:
count()函數(shù)有兩個(gè)參數(shù):
count($arr,COUNT_NORMAL);?//默認(rèn),不檢測(cè)多維數(shù)組
count($arr,COUNT_RECURSIVE);?//檢測(cè)多維數(shù)組
例子:
$arr = array(
0=array('name'='kong','age'='18'),
1=array('name'='liang','age'='30')
);
count($arr) = 2;
count($arr,COUNT_RECURSIVE) = 6;
擴(kuò)展資料:
PHP 在數(shù)據(jù)庫(kù)方面的豐富支持,也是它迅速走紅的原因之一,它支持下列的數(shù)據(jù)庫(kù)或是數(shù)據(jù)文件:
Adabas 、D、 DBA、dBase 、dbm 、filePro 、Informix 、InterBase、mSQL 、Microsoft SQL Server、·MySQL、Solid、Sybase、 Oracle 、PostgreSQL
今時(shí)今日,數(shù)據(jù)庫(kù)系統(tǒng)已經(jīng)成為各個(gè)動(dòng)態(tài)網(wǎng)站上 web 應(yīng)用程序的重要組成部分。由于非常敏感和機(jī)密的數(shù)據(jù)有可能保存在數(shù)據(jù)庫(kù)中,所以對(duì)數(shù)據(jù)庫(kù)實(shí)施保護(hù)就顯得尤為重要了。
要從數(shù)據(jù)庫(kù)中提取或者存入數(shù)據(jù),就必須經(jīng)過(guò)連接數(shù)據(jù)庫(kù)、發(fā)送一條合法查詢(xún)、獲取結(jié)果、關(guān)閉連接等步驟。目前,能完成這一系列動(dòng)作的最常用的查詢(xún)語(yǔ)言是結(jié)構(gòu)化查詢(xún)語(yǔ)言 Structured Query Language (SQL)。可以看看攻擊者是如何篡改 SQL 查詢(xún)語(yǔ)句的。
參考資料:百度百科-PHP
暴字段長(zhǎng)度命令如下
Order by num/*
另完整的手工注入過(guò)程如下:
首先要做的是在判斷好字段數(shù)后,爆破用戶(hù)信息,注入的過(guò)程中如果當(dāng)前數(shù)據(jù)庫(kù)連接用戶(hù)為root或者具有root權(quán)限就可以嘗試使用loadfile()這個(gè)函數(shù)來(lái)讀取文件。
一、在linux下我們可以讀取/etc/passwd和/etc/shadow來(lái)暴力破解linux密碼
二、在windows下我們可以讀取一些常見(jiàn)的文件以及敏感的地方比如serv-u的配置文件my.ini等等,然后就是一一破解字段和字段內(nèi)容即可。
第二種情況通過(guò)version()函數(shù)得知mysql版本在5.0以上,那么可以使用mysql自帶的information_schema這個(gè)數(shù)據(jù)庫(kù)來(lái)查詢(xún)所有的表,然后也是一一破解字段和字段內(nèi)容即可。
最不好的情況(目前很少了)就是權(quán)限不是root,數(shù)據(jù)庫(kù)版本過(guò)低,那么所有的表,字段都是要自己猜解的,沒(méi)有工具的情況下,會(huì)讓工作量加大幾十倍,還不一定能猜到,讓人汗顏。
所以有工具還是很方便的。