① 本人新手,弱弱的問下php類庫和框架的區別
類庫是類的集合,這些類之間可能是相互獨立的。應用開發者希望使用任何一個類時可以直接調用它,而不必再寫一個。與類庫相比,框架和類庫有著相似的形式,即框架也往往是類的集合;但不同之處在於,框架中的各個類並不是孤立的,而框架中的業務邏輯代碼是將不同的類「連」在一起,在它們之間建立協作關系。圖2-15很好地表達了上述意思。
呵呵,復制的,你提到這個問題時,我也去看了一下
② php 怎麼做定時任務
linux系統的話用crontab來處理吧。方便快捷穩定
如果你非要用php做的話,那就寫個守護進程了,比如:
<?php
while(true)
{
if(time()=='xxxxx')
{
$exe='phptest.php';
//執行
system($exe,$output);
}
sleep(5);
}
③ 麻煩問一下PHP中,PHP自帶的擴展和類庫是一種東西嗎
1. 一般來說,php的類庫使用的還是php語言編寫的,因此一般使用include/require導入。
2. php的擴展庫的導入一般是在php.ihi里導入,比如,gd2庫的載入:
[PHP_GD2]
extension=php_gd2.dll
PHP官方擴展類庫是PEAR和PECL,你可以搜索相關資料。
④ php中函數庫和類庫到底有什麼區別
首先你要知道什麼是函數,比如這一個
is_mail($str){//判斷的內容}
假如這個is_mail可以用來判斷用戶提交的數據是否是email格式的,這就是一個功能。判斷is_mail的功能。
使用的時候只要
if(is_mail($str))
{}
else
{}
函數庫
就是很多函數的集合。有很多功能,你就不用自己重新寫了,直接使用就可以。
而類庫,你要先理解類。
類,你可以理解為函數根據實際需求分類存放的一個地方。因為如果項目很大,就會有很多函數,如果不分類,有時候就很難找到了。根據函數的功能,把一類函數都整合到一個類裡面,使用起來就很方便。
比如資料庫操作類。
所有資料庫操作的函數都放在裡面了,你只要調用就可以了。
$db = new data();
$db->qurey();//使用$db類的qurey方法,其實就是使用qurey這個函數。
而類庫,就是很多可以直接使用的類。
總而言之,函數庫和類庫,可以大大提升開發效率。
⑤ php如何自定義類庫
說白了,我就是把一些經常使用到的函數,方法寫在一起,以後可以直接引用。
既然是庫,就把安然規則,把庫名,規范排好。
若是存在在多個文件夾里,只能用包含方式。
若不包含,無法實現:你設想一番,php如何能找到你的方法,類,在哪裡??php去哪裡尋找啊?你找不到啊?
只能包含在一起。
如何做過規范,有序的包含,建議你下載開源的(discuz.dedecms)閱讀一番即可。養成良好的方法。
⑥ php中什麼是第三方類庫
如果你直接使用的是第三方的類庫包,或者是類名和後綴和ThinkPHP的默認規則不符合的,我們建議你放到第三方類庫擴展目錄Extend/Vendor目錄下面,並使用vendor方法來導入。
例如,我們把Zend的Filter\Dir.php 放到Vendor目錄下面,這個時候Dir文件的路徑就是
Vendor\Zend\Filter\Dir.php,我們使用vendor方法導入就是:
Vendor('Zend.Filter.Dir');
需要注意的是,vendor方法默認導入的類庫後綴是php的而不是class.php的,如果你的第三方類庫的後綴是class.php,可以使用:
Vendor('Zend.Filter.Dir','','.class.php');
或者使用:
import('Zend.Filter.Dir',VENDOR_PATH);
通過使用第三方類庫擴展,我們可以直接使用Zend、CI或者其他框架中的類庫。
⑦ 如何將我的php腳本以守護進程的方式一直運行
寫好php腳本。建議定期檢測內存佔用,核心邏輯就不寫了。這個跟業務有關。
if(memory_get_usage()>100*1024*1024){
exit(0);//大於100M內存退出程序,防止內存泄漏被系統殺死導致任務終端
}
假設該php文件的路徑為/root/run.php
打開終端
setsid php /root/run.php > /dev/null &
編輯進程監控腳本,當進程不存在時,自動重啟 /root/monitor.sh
#!/bin/bash
alive=`ps aux|grep root\/run|grep -v grep|wc -l`
if [ $alive -eq 0]
then
php /root/run.php > /dev/null &
fi
添加計劃任務(每分鍾檢測一次)
crontab -e
* * * * * /root/monitor.sh > /dev/null &
⑧ 如何寫php守護進程
寫好php腳本。建議定期檢測內存佔用,核心邏輯就不寫了。這個跟業務有關。 if(memory_get_usage()>100*1024*1024){ exit(0);//大於100M內存退出程序,防止內存泄漏被系統殺死導致任務終端 } 假設該php文件的路徑為/root/run.php打開終端
⑨ Php cli是守護進程的嗎
php_cli模式簡介
php-cli是php Command Line Interface的簡稱,如同它名字的意思,就是php在命令行運行的介面,區別於在Web伺服器上運行的php環境(php-cgi, isapi等) 也就是說,php不單可以寫前台網頁,它還可以用來寫後台的程序。 PHP的CLI shell腳本適用於所有的PHP優勢,使創建要麼支持腳本或系統甚至與GUI應用程序的服務端!——註:windows和linux下都支持php_cli模式
PHP-cli應用場景:
1.多線程應用
這方面的好處,引用鳥哥的話:
優點:
1. 使用多進程, 子進程結束以後, 內核會負責回收資源
2. 使用多進程,子進程異常退出不會導致整個進程Thread退出. 父進程還有機會重建流程.
3. 一個常駐主進程, 只負責任務分發, 邏輯更清楚.
php的多線程—沒錯就是php多線程應用,雖然大家都普遍認為php沒有多線程(curl屬於模擬多線程而不是真實的),但是在php_cli模式下的php徹底的是屬於多線程。這個時候php屬於linux的一個守護進程。 在本人之前寫過的《PHP多線程批量採集下載美女圖片(續)》的時候在採集程序里雖然使用curl來模擬多線程,但是在瀏覽器執行的時候也是會遇到執行超時或內存abort而導致程序中斷,(要嘗試幾次才可以徹底成功),但是如果在php-cli模式下執行,你就會發現這個程序執行的很快,php多線程執行的優勢被徹底表現出來了.
備注:這種多線程方式不是很成熟,不適合大規模的生成應用,偶爾使用還是可以的
2.定時執行php程序
利用linux的cron方式,那麼這個方式是如何定時執行php程序?請看下文
3.開發桌面程序
你可以做您的Windows或Linux中使用PHP的圖形用戶界面(GUI)應用!所有你需要的是PHP的命令行介面和一包GTK。這將允許建立真正的攜帶型圖形用戶界面應用程序(呵呵,之前只是知道php可以做桌面程序,現在才知道是使用php_cli模式),並且不需要學習別的。
4.編寫PHP的shell腳本
如果你不會bash shell或者Perl等的使用,但是你又需要一些腳本去執行的時候,怎麼辦?這個時候你完全可以使用你熟悉的php編寫shell腳本,這個時候你是不是突然感覺PHP是不是太強大了!—–真正做到一種語言,到處開發!
PHP_CLI使用方法
win下面的執行方法:
假設php.exe 在D:xamppphp在dos命令在可以這個執行:
復制代碼 代碼如下:D:xamppphpphp.exe D:xampphtdocstest.php
就可以執行test.php這個文件了 。這里推薦win平台下xampp集成環境,真正比wamp強大N倍,這個集成包可以直接進入dos模式。
linux下php_cli使用
首先找到你安裝php的路徑,以我為例:
當然實現的方法不止一個,大家可以嘗試其他方法實現!
例外關於php的cli還有很多參數可以加入:具體可以參考:http://php.net/manual/en/features.commandline.php
關於定時執行
cron是一個linux下的定時執行工具,可以在無需人工干預的情況下運行作業,周期性作業,比如備份數據 打開/etc/crontab,添加:
復制代碼 代碼如下:
/usr/bin/php -f /data/htdocs/test.php
⑩ php行為類庫,模型類庫這些是什麼意思
模型就是資料庫封裝,行為是邏輯代碼,widget是小功能,thinkPHP的