超碰在线天天性国产视频|无码人妻玩麻豆中出一区有奶水|日日日日日日日日日日日日网96|91视频农村妇女网站|精品美女日本一区|日韩无码一区视频|精品素人AV婷婷色视频|日本精品视频手机在线|少妇高清无码一二区|激情四射综合婷婷

貨幣問(wèn)答:php類(lèi)庫(kù)

輕煙

ThinkPHP怎么導(dǎo)入自定義類(lèi)庫(kù)

ThinkPHP的類(lèi)庫(kù)主要包括公共類(lèi)庫(kù)和應(yīng)用類(lèi)庫(kù),都是基于命名空間進(jìn)行定義和擴(kuò)展的。只要按照規(guī)范定義,都可以實(shí)現(xiàn)自動(dòng)加載。類(lèi)庫(kù)存放位置:Think目錄:系統(tǒng)核心類(lèi)庫(kù)Org目錄:第三方公共類(lèi)庫(kù) 這些目錄下面的類(lèi)庫(kù)都可以自動(dòng)加載,你只要把相應(yīng)的類(lèi)庫(kù)放入目錄中,然后添加或者修改命名空間定義。你可以在Org/Util/目錄下面添加一個(gè)Image.class.php 文件,然后添加命名空間如下:namespace Org\Util;class Image {} 這樣,就可以用下面的方式直接實(shí)例化Image類(lèi)了:$image = new \Org\Util\Image; 公共類(lèi)庫(kù)除了在系統(tǒng)的Library目錄之外,還可以自定義其他的命名空間,我們只需要注冊(cè)一個(gè)新的命名空間,在應(yīng)用或者模塊配置文件中添加下面的設(shè)置參數(shù):'AUTOLOAD_NAMESPACE' => array( 'Lib' => APP_PATH.'Lib',) 如果你的類(lèi)庫(kù)沒(méi)有采用命名空間的話,需要使用import方法先加載類(lèi)庫(kù)文件,然后再進(jìn)行實(shí)例化,例如:我們定義了一個(gè)Counter類(lèi)(位于Com/Sina/Util/Counter.class.php):import('Com.Sina.Util.Couter');$object = new \Counter(); 這些看tp手冊(cè)的擴(kuò)展部分,很簡(jiǎn)單也很詳細(xì)

推薦
不推薦
展開(kāi)
收起
呂威璜

PHP有哪些非常實(shí)用的類(lèi)庫(kù)或工具庫(kù)

  到 packagist.org 上面一堆堆的哦~~要啥有啥,當(dāng)然,你首先需要 composer 作為包管理器?! ⊙a(bǔ)充說(shuō)明:  由于 composer 已經(jīng)是一枚 PHPer 的標(biāo)配,因此 packagist 上完全囊括了當(dāng)下所有優(yōu)秀的包(不優(yōu)秀的也有),但是 packagist 是英文的,很多優(yōu)秀的包也是英文的,因此你需要學(xué)會(huì)通過(guò)使用英文語(yǔ)義去查詢(xún)需要的包?! ‘?dāng)然使用搜索引擎,也可以快速找到需要的包的包名,反向去 packagist 上查找。  比如我現(xiàn)在需要一個(gè)模擬 HTTP 請(qǐng)求的第三方包,網(wǎng)搜來(lái)搜去發(fā)現(xiàn)有一個(gè) guzzlehttp/guzzle 的庫(kù),只需要 composer require guzzlehttp/guzzle 就可以快速安裝到你現(xiàn)有的項(xiàng)目中咯~~同樣的還有很多,比如常用的微信公眾號(hào)三方庫(kù)(包),只需配置幾個(gè)參數(shù)就可以?xún)?yōu)雅的開(kāi)發(fā)微信公眾號(hào),而不需大動(dòng)干戈手寫(xiě)很多代碼。

推薦
不推薦
展開(kāi)
收起
蠻煙瘴雨

怎樣修改thinkphp框架類(lèi)庫(kù)代碼

類(lèi)庫(kù)擴(kuò)展類(lèi)庫(kù)擴(kuò)展包括基類(lèi)庫(kù)擴(kuò)展、應(yīng)用類(lèi)庫(kù)擴(kuò)展和第三方類(lèi)庫(kù)擴(kuò)展,所有擴(kuò)展類(lèi)庫(kù)不會(huì)自動(dòng)加載,需要手動(dòng)加載或者定義別名和配置自動(dòng)加載(詳細(xì)可以參考4.2.3類(lèi)庫(kù)導(dǎo)入和4.2.5自動(dòng)加載)?;?lèi)庫(kù)擴(kuò)展目前支持的基類(lèi)庫(kù)擴(kuò)展包括ORG(第三方公共類(lèi)庫(kù)包)和Com(企業(yè)類(lèi)庫(kù)包)。你可以在ORG類(lèi)庫(kù)目錄下面添加自己需要的類(lèi)庫(kù),你甚至還可以創(chuàng)建屬于自己企業(yè)的類(lèi)庫(kù),只需要在Extend/Library目錄下面創(chuàng)建Com目錄,然后在里面增加相應(yīng)的類(lèi)庫(kù)就可以方便的使用import方法導(dǎo)入了。例如,我們?cè)贓xtend/Library/Com下面創(chuàng)建了Sina目錄,并且放了Util\UnitTest.class.php類(lèi)庫(kù)文件,可以使用下面的方式導(dǎo)入import('Com.Sina.Util.UnitTest');目前官方提供的擴(kuò)展或者第三方擴(kuò)展都在ORG類(lèi)庫(kù)包下面。應(yīng)用類(lèi)庫(kù)擴(kuò)展項(xiàng)目類(lèi)庫(kù)的擴(kuò)展,和基類(lèi)庫(kù)的擴(kuò)展一樣,我們可以在項(xiàng)目類(lèi)庫(kù)目錄增加你想要的子目錄,也只有在項(xiàng)目類(lèi)庫(kù)目錄下面增加的類(lèi)庫(kù)才能使用import方法導(dǎo)入。例如,我們?cè)贛yApp的項(xiàng)目類(lèi)庫(kù)目錄Lib下面增加Common和Util目錄,就可以這樣加載這些目錄下面的類(lèi)庫(kù)文件了:import('MyApp.Util.UnitTest'); import('@.Common.CommonUtil');第三方類(lèi)庫(kù)擴(kuò)展如果你直接使用的是第三方的類(lèi)庫(kù)包,或者是類(lèi)名和后綴和ThinkPHP的默認(rèn)規(guī)則不符合的,我們建議你放到第三方類(lèi)庫(kù)擴(kuò)展目錄Extend/Vendor目錄下面,并使用vendor方法來(lái)導(dǎo)入。例如,我們把Zend的Filter\Dir.php 放到Vendor目錄下面,這個(gè)時(shí)候Dir文件的路徑就是Vendor\Zend\Filter\Dir.php,我們使用vendor方法導(dǎo)入就是:Vendor('Zend.Filter.Dir');需要注意的是,vendor方法默認(rèn)導(dǎo)入的類(lèi)庫(kù)后綴是php的而不是class.php的,如果你的第三方類(lèi)庫(kù)的后綴是class.php,可以使用:Vendor('Zend.Filter.Dir','','.class.php');或者使用:import('Zend.Filter.Dir',VENDOR_PATH);通過(guò)使用第三方類(lèi)庫(kù)擴(kuò)展,我們可以直接使用Zend、CI或者其他框架中的類(lèi)庫(kù)。

推薦
不推薦
展開(kāi)
收起
鄭顛仙

怎樣使用PHP調(diào)用功能強(qiáng)大的JAVA類(lèi)庫(kù)相關(guān)文章推薦

1.php的Java模塊php發(fā)布版中包含一個(gè)Java擴(kuò)展模塊,可以用來(lái)調(diào)用Java對(duì)象,例如:<?php$system=new Java("java.lang.System");print "Java version=".$system->getProperty("java.version")." <br>";?>使用這種方法的優(yōu)點(diǎn)是比較方便,只要用new Java()來(lái)創(chuàng)建一個(gè)Java對(duì)象,就可以同php類(lèi)一樣來(lái)調(diào)用Java對(duì)象。但是這種方法也有以下明顯的缺點(diǎn):1.由于php的Java模塊根據(jù)php的數(shù)據(jù)類(lèi)型選擇最適合的Java方法,因此無(wú)法調(diào)用Java過(guò)載的函數(shù)。2.php的Java模塊將在當(dāng)前Web Server的進(jìn)程中載入JVM(Java虛擬機(jī)),因此系統(tǒng)開(kāi)銷(xiāo)極大,影響Web Server進(jìn)程的執(zhí)行效率。3.在某些操作系統(tǒng)和Web Server環(huán)境中,php的Java模塊將使Web Server進(jìn)程僵死。見(jiàn)http://www.php.net/bugs.php?id=6122。由于這些原因,php的Java模塊一直無(wú)法應(yīng)用到實(shí)際的的軟件系統(tǒng)中。2.minij2ee應(yīng)用服務(wù)器SJOP協(xié)議實(shí)現(xiàn)在介紹minij2ee應(yīng)用服務(wù)器SJOP協(xié)議實(shí)現(xiàn)之前,先簡(jiǎn)單介紹一下minij2ee應(yīng)用服務(wù)器。minij2ee應(yīng)用服務(wù)器是第一款支持php的J2EE應(yīng)用服務(wù)器產(chǎn)品,使php能夠用于開(kāi)發(fā)企業(yè)級(jí)應(yīng)用系統(tǒng)。SJOP全稱(chēng)是Sample Java ORB Protocol(簡(jiǎn)單Java對(duì)象請(qǐng)求代理協(xié)議),是一種簡(jiǎn)單高效的對(duì)象請(qǐng)求代理協(xié)議。比如:<?php$conn=minij2ee_fetch_connection();print "Java version=".minij2ee_callstatic_javaobj($conn,"java.lang.System","getProperty","java.lang.String","java.version")." <br>";?>minij2ee應(yīng)用服務(wù)器實(shí)現(xiàn)SJOP協(xié)議的主要目的是使php中能夠訪問(wèn)EJB企業(yè)級(jí)組件,因此minij2ee提供了一個(gè)EJB-PHP編譯器,可以把EJB組件編譯成php的類(lèi),使php程序中能夠方便的調(diào)用EJB組件,例如:<?phprequire("Cart.php"); file://Cart.php是編譯Cart EJB后生成的Cart EJB的php類(lèi)定義。$home=new CartHome(); file://創(chuàng)建EJB的Home接口。

推薦
不推薦
展開(kāi)
收起
施詐術(shù)

phpqrcode類(lèi)庫(kù)怎么安裝

調(diào)用PHP qrCode非常簡(jiǎn)單,如下代碼即可生成一張內(nèi)容為"http://www.learnphp.cn"的二維碼.Php代碼 include 'phpqrcode.php'; QRcode::png('http://www.learnphp.cn'); 那么實(shí)際應(yīng)用中,我們會(huì)在二維碼的中間加上自己的LOGO,已增強(qiáng)宣傳效果。那如何生成含有l(wèi)ogo的二維碼呢?其實(shí)原理很簡(jiǎn)單,先使用PHP qr Code生成一張二維碼圖片,然后再利用php的image相關(guān)函數(shù),將事先準(zhǔn)備好的logo圖片加入到剛生成的原始二維碼圖片中間,然后重新生成一張新 的二維碼圖片。本回答被提問(wèn)者采納

推薦
不推薦
展開(kāi)
收起
小夜美

ajax調(diào)用PHP類(lèi)庫(kù)中的函數(shù)

直接調(diào)用不可能,但可以繞過(guò)去調(diào)用a.php<?php$_token = md5(time());//令牌$_SESSION['_TOKEN'] = $_token;//....?><html>...<form><input name="_TOKEN" value="<?php print $_token; ?>">....//這里說(shuō)一下令牌,令牌一般是服務(wù)器端驗(yàn)證提交數(shù)據(jù)是否為合法//與驗(yàn)證碼功能差不多,不過(guò)驗(yàn)證碼需要手動(dòng)輸入,這個(gè)是程序內(nèi)部使用...處理post<?phpif($_POST['_TOKEN'] == $_SESSION['_TOKEN']){$_SESSION['_TOKEN'] = '';//清除令牌,防止網(wǎng)絡(luò)延緩的再次提交。...}?>然后是ajax上面我為什么要在你原來(lái)的程序上加入令牌呢,因?yàn)榭梢噪S意的調(diào)用php函數(shù)是很不安全的,很容易被有心人利用,所以做一點(diǎn)安全保護(hù),當(dāng)然不一定絕對(duì)安全function _new_ajax(){//創(chuàng)建XMLHTTPRequestsreturn xhr;}function _ajax(_option)//url, data, type, async{//初始化if(typeof _option.url == 'undefined' || _option.url == ''){alert('ajax錯(cuò)誤,沒(méi)有定義請(qǐng)求路徑');return false;}_option.data = _option.data || {};_option.type = _option.type || 'GET';_option.async = _option.async || true;_option.callback = _option.callback || function(){};//開(kāi)始請(qǐng)求var xhr = _new_ajax();if(typeof _option.data == 'string'){_option.url += (_option.url.match(/\?/) ? "&" : "?") + _option.data;}else{for(var i in _option.data){_option.url += (_option.url.match(/\?/) ? "&" : "?") + i + '=' + _option.data[i];}}xhr.open(_option.type, _option.url, _option.async);xhr.onreadystatechange = function(){if(xhr.readyState == 4 && xhr.status == 200){var res = xhr.responseText;_option.callback(res);}};xhr.send(null);xhr = null;}上面的是我簡(jiǎn)單寫(xiě)的,估計(jì)考慮不是很全驗(yàn)證用戶是否存在就這樣function check_user_id(){document.getElementById('useridexist').innerHTML = "Check the ID, Please wait...";var user_id = document.login.userid.value;//這里是上面說(shuō)的,要直接使用函數(shù)庫(kù),必須安全驗(yàn)證var _TOKEN = document.login._TOKEN.value;_ajax({url:'class/useridexist.php',data:{_TOKEN:_TOKEN, function:check_user, id:user_id},//調(diào)用php函數(shù)check_usercallback:function(res){document.getElementById('useridexist').innerHTML = res;}})}好了,準(zhǔn)備就緒,現(xiàn)在看php端了b.php<?phpif($_GET['_TOKEN'] == $_SESSION['_TOKEN']){//這里不清除令牌,因?yàn)樘峤籶ost還要使用,驗(yàn)證在前,提交post在后$function = $_GET['function'];if(function_exists($function)){$function($_GET);}else{print '函數(shù)'.$function.'不存在';}}//以下為函數(shù)庫(kù)function check_user($get){//.....驗(yàn)證存在否,輸出}?>

推薦
不推薦
展開(kāi)
收起
路理

PHP生成PDF,用什么類(lèi)庫(kù)好

public static function pdfForceView($file_full_path, $title) {    self::clean_before_output();    if(!is_readable($file_full_path)){        return false;    }    header('Expires: 0');    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');    header('Pragma: public');    header('Content-type: application/pdf');    $filename = trim($title).'.pdf';    if(strpos($_SERVER["HTTP_USER_AGENT"], 'MSIE') !== false){        $filename = rawurlencode($filename);    }    header('Content-Disposition: inline; filename="' . $filename . '"');    header('Content-Transfer-Encoding: binary');    header('Content-Length: ' . filesize($file_full_path));    header('Accept-Ranges: bytes');    readfile($file_full_path);}

用header是最簡(jiǎn)單的。復(fù)雜的建議用 mpdf ,對(duì)中文的支持也很友好,也支持js.

推薦
不推薦
展開(kāi)
收起
軼凡

PHP爬蟲(chóng)用什么類(lèi)庫(kù)

它的元素能夠添加到數(shù)組中肯定已經(jīng)存在(定義)了,當(dāng)時(shí)我就想這段代碼毫無(wú)意義,然后又去查了下手冊(cè),才知道isset函數(shù)的功能:當(dāng)變量存在且不為空時(shí)才返回true。如果一個(gè)變量定義了,但是沒(méi)有賦值,那么默認(rèn)為空。上面的代碼就是找出數(shù)組中第一個(gè)不為空的變量。

推薦
不推薦
展開(kāi)
收起
申景裕

thinkphp擴(kuò)展類(lèi)庫(kù)怎么用

把你的擴(kuò)展類(lèi)放到 ThinkPHP/Library 文件夾里,然后在控制器里引入,引入方法:import('Com.Sina.Util.Couter');$object = new \Counter();

推薦
不推薦
展開(kāi)
收起
查看更多答案
收起