本文目錄一覽:
- 1、php 的位運算總結
- 2、php的優點總結 php有哪些優點
- 3、php知識框架總結
- 4、總結了現在php語言比較流行的幾個原因
- 5、PHP入門教程之日期與時間操作技巧總結(格式化,驗證,獲取,轉換,計算等)
php 的位運算總結
php的位運算很少會用到,但是用處很大,
在有些演算法中會用到,在許可權管理中也會經常用到,
對於理解計算機的世界也會有一定的幫助,所以得把這些重要但不常用的東西總結一下記錄一下。
提到位運算,避不開的是二進位。
因為位運算是直接在內存做操作和運算,相較與直接拿兩個變數做運算符肯定是更快的。
很多地方把二進位這玩意說得很晦澀,現在來以最簡單的方式來總結一下,當然只算 int 範圍內的數算了,超過了這個範疇程序員還不如拿這時間去學點別的。
說完以上總結,再來解釋下什麼是二進位,網上大把,
但只要記住,int範圍內的數也就是我們大部分需要用到的數,都可以用二進位來表示。
我們生活中用到的計數方式為十進位,由個數位滿10進1,
然後再開始重新計算,等十位滿9再加一時,百位加一,十位歸零。
二進位則只有兩個數字來表示就是0和1,滿2進1。
由32個位組成,雖然只有32個位但已滿足了我們正常的需求了
比如說1轉換為2進位原碼,由於1是正數所以符號位為0,
原碼反碼補碼都一個樣。
1的原碼:00000000 00000000 00000000 00000001
因手懶,太多0太丑用+拼接,’0* 8’代表8個0
2的原碼:0* 8 0* 8 0* 8 0* 6 + 1 0,既然是二進位,
滿2就得進1,最低位歸0,向前加一。
再來解釋下負數的原碼反碼和補碼,就開始講php的位運算了。
二進位複習完畢。下面開始講講php的位運算。
php一共有六種位運算,一種一種來講。
可以這麼理解,兩個數的補碼放在一起比較每個位(一共32個位),
可以得出另外一個數,這個數字的組成由比較的兩位數字生成,
如果兩個數的每個位數上的數字都等於1的話,
那得到的那個數的補碼的同位為1,否則為0。
聽著繞口,其實很簡單,覺得還是比官網上的更容易讓新手看懂
下面舉例子:
首先來求-1和7的補碼。7的原碼就是補碼。
兩個補碼都有了下面開始運算:
按照上面的說法, 每個位都有一樣則 $a 的同等位則為1,剛好-1的補碼和7的補碼前面都不一樣,就最後三位一樣,所以剛好求得的 $a 的補碼的最後三位是1而其他的都是0 ,剛好這個補碼為正數,正好就是7。
其實就是和按位與相反,只要有1個為1,那就為1,如果都不為1,那就為0。
$a = -1|7 ;得出來的 $a 補碼為32個1,但此時不能說 $a 就是-1,因為這只是補碼,要轉成原碼再轉成十進位數,補碼-1,然後再翻轉,再轉出來,得到的其實也還是-1。
就是將這個數的補碼全部翻轉過來,包括符號位,0變1,1變0
取反的結果一定是整數變負數負數變正數,取正數的反時,
記得一定要從補碼一步步轉到原碼再轉成十進位數才是答案。
兩個數的補碼比較,同等位上的兩數比較
,不一樣時,則答案的補碼的同位則為1,否則為0。
往左移符號位被擠走右邊0補充,往右移動,符號位不動,
高位以符號位補充。二進位世界裡往左移動其實是相當於乘以了2,
右移相當於除以了2。
不吹牛逼的說,這應該是互聯網上最容易理解的php位運算的解釋和二進位的解釋了。
原文鏈接: php的位運算總結-PHP
php的優點總結 php有哪些優點
PHP優點:
1.入門快,有其它語言基礎的程序員二周左右的時間就可以入門,一個月左右的時間基本上就可以開發簡單的項目了。
2.開發成本低,PHP最經典的組合就是:Linux + Apache + MySQL + PHP。非常適合開發中小型的web應用,因為上手容易,所以開發的速度比較快。而且所有的軟體都是開源免費的,可以減少投入。
3.PHP是解釋性的腳本語言,寫完代碼以後即可以執行,不像c,java,c++等語言還需要去編譯執行,相對來說比較節省時間。
4.相對來說,PHP程序員的薪水的平均工資要比c,c++,java程序員的平均工資要低一些,特別是對於中小型企業來說可以節約一些成本。
5.配置及部署相對簡單一些,對比JAVA開發來說,JAVA開發的配置就複雜多了,什麼Structs、Spring、Hibernate、Tomcat等等很多地方都需要配置,甚至你在程序中每寫一個SQL語句都需要先在Hibernate中配置一下,有時重新部署一個class文件或jar文件還可能需要重啟Web伺服器(Tomcat或Resin或其它的Web伺服器)使新部署的庫文件生效。
PHP開發中主要是PHP自身的配置文件及Web伺服器的配置(如Apache或Nginx或Lighttpd等),相對於JAVA來說還是簡單一些,而且新修改了文件以後不需要重新啟動Web即可以立即生效。
6.有很多開源的框架或開源的系統可以使用,比如比較知名的開源框架有Zend Framework、CakePHP、CodeIgniter、symfony、thinkphp等,開源論壇有Discuz!、Phpwind等,開源博客WordPress,開源網店系統如Ecshop、ShopEx等,開源的SNS系統如UCHome、ThinkSNS等。
內容擴展
1. 跨平台,性能優越,跟Linux/Unix結合別跟Windows結合性能強45%,並且和很多免費的平台結合非常省錢,比如LAMP(Linux /Apache/Mysql/PHP)或者FAMP(FreeBSD/Apache/Mysql/PHP)結合,或者數據應用夠大可以考慮換 PostgreSQL或者Oracle,支持N種資料庫。(N = 10)
2. 語法簡單,如果有學習C和Perl的很容易上手,並且跟ASP有部分類似。有成熟的開發工具,比如NuPHPed,或者Zend Studio等等,再Linux平台下可以使用Eclipse等等。
3. 目前主流技術都支持,比如WebService、Ajax、XML等等,足夠應用。
4. 有比較完整的支持,比如使用ADODB或者PEAR::DB做資料庫抽象層,用Smarty或者smart template做模板層,如果是PHP 5.1的話,還能夠使用PDO(PHP Data Object)來訪問資料庫。
5. 有很多成熟的框架,比如支持MVC的框架:phpMVC,支持類似ASP.net的事件驅動的框架:Prado,支持類似Ruby On Rails的快速開發的框架:Cake等等,足夠滿足你的應用需求。
6. PHP 5已經有成熟的面向對象體系,能夠適應基本的面向對象要求。適合開發大型項目。
7. 有成熟的社區來支持PHP的開發。
8. 目前已經很多大型應用都是使用PHP,比如淘寶網、Yahoo、163、Sina等等大型門戶,很多選用PHP來作為他們的開發語言,所以大型門戶都能夠選用它,我想足夠能夠你的使用了。
9. 有很多開源的框架或開源的系統可以使用,比如比較知名的開源框架有Zend Framework、CakePHP、CodeIgniter、symfony等,開源論壇有Discuz!、Phpwind等,開源博客 WordPress,開源網店系統如Ecshop、ShopEx等,開源的SNS系統如UCHome、ThinkSNS等。
php知識框架總結
php知識框架總結
篇一:php基礎知識點總結
PHP語言基礎簡單整理
1.開始結束標記的格式只有在沒有判斷語句時才能使用。
對錶單傳遞的變數進行編碼和解碼:PHP中實現對查詢字元串進行URL編碼可以通過函數urlencode()實現,該函數的使用格式如下:string urlencode(string str);對URL編碼後的查詢字元串進行解碼,可以通過urldecode()函數實現,該函數的使用格式如下:string urldecode(string str);
15.PHP連接資料庫:
步驟: 一、建立連接——mssql_connect(server,uid,pwd);
二、指定database——-mssql_select_db(databasename);
三、執行sql——mssql_query($sql,$link);
四、處理記錄集——-資源類型數據,格式:bof—數據—eof
五、以特定格式讀取數據—–mssql_fetch_array()….
六、釋放相關資源、關閉連接——mssql_free_result($result);mssql_close();
16.數組:php的數組由鍵值和value值組成
定義:$array = array(“鍵值”=”value”,”鍵值”=”value”,”鍵值”=”value”);如果不給鍵值賦值,默認從0開始的int值
相關函數:(1)in_array(“值”,數組名); 返回bool型—–查看數組中是否存在某value值
(2)array_key_exists(“key值”,數組名); 返回bool型—–查看數組中是否存在某鍵值
(3)array_keys(數組名);—將數組鍵值返回出來形成一個新數組,此鍵值作為新數組的value值
(4)array_values(數組名);—將數組value值返回出來形成一個新數組,此值作為新數組的value值
(5)key(數組名);—-返回當前指針指向的元素key值
(6)current(數組名);—-返回當前指針指向的元素value值
(7)next(數組名);—-挪動當前數組指針到下一步
(8)reset(數組名);—-恢複數組指針,指向第0個元素
(9)end(數組名);—-將指針挪向最後一個元素
(10)prev(數組名);—-將指針向前挪動一位
(11)foreach(數組名 as $key=$value)
{
$key是鍵值,$value是value值,實現數組遍歷
}
(12)each(數組名);—-將當前數組元素依次取出(自動挪動指針)並放到一個新的數組中
(13)array_shift(數組名);—-返回數組中第一個元素值
(14)array_pop(數組名);—-返回數組最後一個元素值
(15)array_push(數組名,value);—-向數組中追加元素
(16)array_unshift(數組名,value);—-在數組最前面添加元素
(17)array_pad(數組名,數組長度,value);—-向數組中追加多個元素,對數組副本操作,不改變原數組,返回一個新數組
(18)count();—-返回個數
(19)array_unique(數組名);—-去掉數組中重複部分,操作數組副本,不改變原數組,返回新數組
(20)sort(數組名);—-從小到大升序排列數組value值,一般針對int型value值,返回bool型,成功返回true
(21)rsort(數組名);—-從大到小,逆序排列數組value值
(22)array_combine(數組1,數組2);—-將數組1的value值作為key,數組2的value值作為value值,形成一個新數組
(23)array_merge(數組1,數組2,數組3…);—-合併多個數組,將多個數組value值依次合併,合為一個數組
(24)array_slice(數組名,int,int);—-從目標數組截取元素,形成一個新數組。開始位置為第二個參數,結束位置為第三個參數。若第三個參數不寫,則默認是截取到最後。
(25)array_splice();—-用法同array_slice();但是其截取部分從原數組中刪除
(26)explode(“字元依據”,目標字元串);—-將字元串按照一定的依據拆分成數組
(27)implode(“字元依據”,目標數組);—-將數組元素按照依據組合成一個字元串
(28)range(mixed low,mixed high[number step]);—-生成數組,例:range(1,100,8);—即從1到100,每8位取一個數,組成一個數組
(29)shuffle(數組名);—-用於將數組進行隨機排序
(30)array_sum(數組名);—-對數值型數組元素值進行求和
(31)array_chunk(數組名,int);—-分割目標數組,返回一個新數組,其中數組的每個元素都是一個一維數組,int參數為分割成的一維數組的長度
17.Cookie和會話控制:
Cookie是在HTTP協議下,伺服器或腳本可以維護客戶工作站上信息的一種方式。Cookie是由Web伺服器保存在客戶機上的小文本文件,它可以包含有關用戶的信息。無論何時用戶鏈接到伺服器,Web站點都可以訪問Cookie信息。
存在server端的是session,存在client端的是cookie,它們用來存儲全局變數。 設定Cookie值:setcookie(“名”,”值”);
通過Cookie數組取值:$_cookie[“名”];
設置生成期:setcookie(“名”,”值”,time()+1800);生成期為當前時間加1800秒之後。
刪除cookie: setcookie(“名”,””,time()-3600);中間值設置為空,並將當前時間減去3600秒。 Cookie數組:setcookie(“名[key]”,”值”); 使用foreach讀取。
在PHP中可以通過$_COOKIE預定義變數訪問Cookie的值。如果設置了php.ini中的register_long_arrays,那麼就能夠應用$_COOKIE和$HTTP_COOKIE_VARS;如果在php.ini中還設置了register_globals,那麼就可以在PHP中作為全局變數使用各個Cookie值。但是,更改php.ini中的兩個文件設置,容易對PHP的安全構成威脅,不推薦使用該方法,建議使用更新的$_COOKIE。
會話ID的傳送
會話ID的傳送有兩種方式,一種是Cookie方式,另一種是URL方式。
Cookie傳送方式:
這是最簡單的會話方式,但是有些客戶可能限制使用Cookie,如果客戶限制使用Cookie的條件下,仍要繼續工作,那就要通過其他方式來實現了。
URL傳送方式:
在該方式中,URL本身用來傳送會話,會話標誌被簡單地附加到URL的尾部,或者作為窗體中的一個變數來傳遞。例:
總結了現在php語言比較流行的幾個原因
1、學習過程簡單
PHP的語法與C,Perl,ASP或者JSP相比,對於那些對上述之一的語言較熟悉的人來說,PHP太簡單了。相反的,如果你對PHP了解較多,那麼你對於其他幾種語言的學習都會變得很簡單。
你可以快速地將PHP的核心語言特點全部掌握,你可能已經非常了解HTML,甚至你已經知道怎樣用編輯設計軟體或者手工來製作好看的WEB站點。由於PHP代碼能夠無障礙的添加進你的站點,在你設計和維護站點的同時,你可以很輕鬆的加入PHP使得你的站點更加具有動態特性。
2、可與眾多資料庫連接
PHP可以編譯成具有與許多資料庫相連接的函數。PHP與MySQL是現在絕佳的組合。你還可以自己編寫外圍的函數去間接存取資料庫。通過這樣的途徑當你更換使用的資料庫時,可以輕鬆的更改編碼以適應這樣的變化。PHPLIB就是最常用的可以提供一般事務需要的一系列基庫。
3、可擴展性
就像前面說的那樣,PHP已經進入了一個高速發展的時期。對於一個非程序員來說為PHP擴展附加功能可能會比較難,但是對於一個PHP程序員來說並不困難。
4、面向對象編程
PHP提供了類和對象。基於web的編程工作非常需要面向對象編程能力。PHP支持構造器、提取類等。
5、可伸縮性
傳統上網頁的交互作用是通過CGI來實現的。CGI程序的伸縮性不很理想,因為它為每一個正在運行的CGI程序開一個獨立進程。解決方法就是將經常用來編寫CGI程序的語言的解釋器編譯進你的web伺服器(比如mod_perl,JSP)。PHP就可以以這種方式安裝,雖然很少有人願意這樣以CGI方式安裝它。內嵌的PHP可以具有更高的可伸縮性。
除了以上優點,PHP的開發者們為了更適合web編程,開發了許多外圍的流行基庫,這些庫包含了更易用的層。你可以利用PHP連接包括Oracle,MS-Access,Mysql在內的大部分資料庫。你可以在蒼蠅上畫圖,編寫程序下載或者顯示e-mail。你甚至可以完成網路相關的功能。最好的是,你可以選擇你的PHP安裝版本需要哪些功能。
PHP入門教程之日期與時間操作技巧總結(格式化,驗證,獲取,轉換,計算等)
本文實例講述了PHP日期與時間操作技巧。分享給大家供大家參考,具體如下:
Demo1.php
?php
//驗證時間
//checkdate()
1.月份
2.日
3.年
//checkdate()
判斷這個日期是否是合法的日期
//不合法的日期,試一試
if(checkdate(7,16,2010)){
echo
‘這個日期是合法有效的’;
}else{
echo
‘這個日期是非法的。’;
}
?
Demo2.php
?php
//date
—
格式化一個本地時間/日期
//date(),
徹底研究一下
//date()
可以存放兩個參數,第一參數是日期和時間的格式化,[第二參數是時間戳]
//Y
表示四位數的年份,
y表示二位數的年份
//M
表示英文的月份縮寫,m
表示阿拉伯數字的月份
//D
表示英文下的星期幾縮寫,d
表示阿拉伯數字的日
//第一個參數的格式化可以放一些無關緊要的字元串
//只要無關緊要的字元串不再
format
的目錄里,就不會被識別
//echo
date(‘現在的日期是:Y-m-d’);
//現在的日期是:2015-04-20
//時分秒
=
H
表示24小時制的小時,
//明明是
19
,為什麼顯示
11
點呢,東八區,差
8
個小時
//現在沒有經過任何設置,所以時間在默認時區上
//echo
date(‘現在的日期是:Y-m-d
H:i:s’);
//重點是年月日,時分秒
echo
date(‘r’);
echo
date(‘現在的日期是:Y-m-d
H:i:sa’);
?
Demo3.php
?php
//取得當前的時間,返回一個數組
//”sec”
–
自
Unix
紀元起的秒數
//”usec”
–
微秒數
//”minuteswest”
–
格林威治向西的分鐘數
//”dsttime”
–
夏令時修正的類型
//print_r(gettimeofday());
//第一數組的元素就是時間戳
//gettimeofday()
就是取得的當前時間的時間戳
//$a
=
gettimeofday();
//sec
取得當前時間的時間戳
//轉換成人可以看得懂的時間
//第二個參數,對於本例來講,放與不放,是一樣的。
//echo
date(‘Y-m-d
H:i:s’,$a[‘sec’]);
print_r(gettimeofday(0));
echo
gettimeofday(1);
?
Demo4.php
?php
//將時間戳轉換成人可以看的懂的時間
//date()
函數的第二個參數就是時間戳
//如果第二個參數省略了,那麼就返回當前時間
//如果第二個參數沒有省略,那麼就返回那個時間戳的時間
echo
date(‘Y-m-d
H:i:s’,24554457865);
?
Demo5.php
?php
//getdate()
也可以轉換時間戳
//print_r(getdate());
//Array
(
[seconds]
=
26
[minutes]
=
34
[hours]
=
10
[mday]
=
20
[wday]
=
1
[mon]
=
4
//[year]
=
2015
[yday]
=
109
[weekday]
=
Monday
[month]
=
April
[0]
=
1429526066
)
$t
=
getdate();
echo
$t[‘year’];
//傳遞一個時間戳
print_r(getdate(1029526066));
?
Demo6.php
?php
//直接獲取當前時間戳
//echo
time();//1429526328
//這個
time()
可以調整時間
//大家可以發現
time()
很有用處,可以過去現在和將來
echo
date(‘Y-m-d
H:i:s’,time()+60*60*8);
?
Demo7.php
?php
//獲取特定指定時間的時間戳
//這是當前的時間戳
//echo
time();
//我要取得
2008-08-08
08:08:08
$beijing2008
=
mktime(8,8,8,8,8,2008);
echo
date(‘Y-m-d
H:i:s’,$beijing2008);
?
Demo8.php
?php
//使用時間戳計算時間差
$now
=
time();//當前的時間戳
$wnow
=
mktime(0,0,0,8,16,2016);
//兩個時間戳相減可以得到差秒
echo
round(($wnow
–
$now)/60/60,2).’相差這幾個小時’;
?
Demo9.php
?php
//將人可讀的時間,字元串形式,轉換成時間戳
$a
=
strtotime(‘2010-7-16
15:15:15′)-strtotime(‘2010-7-16
15:14:15′);
if($a
=
60){
echo
‘請這位先生休息一會。’;
}else{
echo
$a;
}
?
Demo10.php
?php
//獲取當前文件的修改時間戳
echo
date(‘Y-m-d
H:i:s’,getlastmod());
?
Demo11.php
?php
//配置系統環境變數
echo
date(‘Y-m-d
H:i:s’);
echo
‘br/’;
//我開始設置時區
putenv(‘Tz=Asia/Shanghai’);
echo
date(‘Y-m-d
H:i:s’);
?
Demo12.php
?php
//putenv(‘Tz=Asia/Shanghai’);
//獲取當前時區
echo
date_default_timezone_get();
echo
‘br/’;
//開始配置默認時區
date_default_timezone_set(‘Asia/Shanghai’);
echo
date(‘Y-m-d
H:i:s’)
;
echo
‘br/’;
echo
date_default_timezone_get();
?
Demo13.php
?php
date_default_timezone_set(‘Asia/Shanghai’);
//”tm_sec”
–
秒數
//”tm_min”
–
分鐘數
//”tm_hour”
–
小時
//”tm_mday”
–
月份中的第幾日
//”tm_mon”
–
年份中的第幾個月,從
開始表示一月
//”tm_year”
–
年份,從
1900
開始
//”tm_wday”
–
星期中的第幾天
//”tm_yday”
–
一年中的第幾天
//”tm_isdst”
–
夏令時當前是否生效
print_r(localtime(time(),true));
//Array
(
[tm_sec]
=
37
[tm_min]
=
15
[tm_hour]
=
19
//[tm_mday]
=
20
[tm_mon]
=
3
[tm_year]
=
115
//[tm_wday]
=
1
[tm_yday]
=
109
[tm_isdst]
=
)
?
Demo14.php
?php
//返回時間戳和微秒數
//怎麼計算頁面運行載入時間
//頁面打開的時候獲取一個時間
//頁面結束的時候獲取一個時間
//用結束的時間減去打開的時間,那麼就是運行時間
//
list($a,$b)=explode(‘
‘,microtime());
//
echo
$b;
function
fn(){
list($a,$b)=explode(‘
‘,microtime());
return
$a+$b;
//返回出精確的秒數
}
//在頁面打開的時候,獲取一個時間
$start_time
=
fn();
for($i=0;$i10000000;$i++){
//
}
//頁面結束的時候,獲取一個時間
$end_time
=
fn();
echo
round(($end_time
–
$start_time),4);
?
更多關於PHP相關內容感興趣的讀者可查看本站專題:《php日期與時間用法總結》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php面向對象程序設計入門教程》、《PHP網路編程技巧總結》、《php字元串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
原創文章,作者:IOZA,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/132588.html