货币问答:php类库

轻烟

ThinkPHP怎么导入自定义类库

ThinkPHP的类库主要包括公共类库和应用类库,都是基于命名空间进行定义和扩展的。只要按照规范定义,都可以实现自动加载。类库存放位置:Think目录:系统核心类库Org目录:第三方公共类库 这些目录下面的类库都可以自动加载,你只要把相应的类库放入目录中,然后添加或者修改命名空间定义。你可以在Org/Util/目录下面添加一个Image.class.php 文件,然后添加命名空间如下:namespace Org\Util;class Image {} 这样,就可以用下面的方式直接实例化Image类了:$image = new \Org\Util\Image; 公共类库除了在系统的Library目录之外,还可以自定义其他的命名空间,我们只需要注册一个新的命名空间,在应用或者模块配置文件中添加下面的设置参数:'AUTOLOAD_NAMESPACE' => array( 'Lib' => APP_PATH.'Lib',) 如果你的类库没有采用命名空间的话,需要使用import方法先加载类库文件,然后再进行实例化,例如:我们定义了一个Counter类(位于Com/Sina/Util/Counter.class.php):import('Com.Sina.Util.Couter');$object = new \Counter(); 这些看tp手册的扩展部分,很简单也很详细

推荐
不推荐
展开
收起
吕威璜

PHP有哪些非常实用的类库或工具库

  到 packagist.org 上面一堆堆的哦~~要啥有啥,当然,你首先需要 composer 作为包管理器。  补充说明:  由于 composer 已经是一枚 PHPer 的标配,因此 packagist 上完全囊括了当下所有优秀的包(不优秀的也有),但是 packagist 是英文的,很多优秀的包也是英文的,因此你需要学会通过使用英文语义去查询需要的包。  当然使用搜索引擎,也可以快速找到需要的包的包名,反向去 packagist 上查找。  比如我现在需要一个模拟 HTTP 请求的第三方包,网搜来搜去发现有一个 guzzlehttp/guzzle 的库,只需要 composer require guzzlehttp/guzzle 就可以快速安装到你现有的项目中咯~~同样的还有很多,比如常用的微信公众号三方库(包),只需配置几个参数就可以优雅的开发微信公众号,而不需大动干戈手写很多代码。

推荐
不推荐
展开
收起
蛮烟瘴雨

怎样修改thinkphp框架类库代码

类库扩展类库扩展包括基类库扩展、应用类库扩展和第三方类库扩展,所有扩展类库不会自动加载,需要手动加载或者定义别名和配置自动加载(详细可以参考4.2.3类库导入和4.2.5自动加载)。基类库扩展目前支持的基类库扩展包括ORG(第三方公共类库包)和Com(企业类库包)。你可以在ORG类库目录下面添加自己需要的类库,你甚至还可以创建属于自己企业的类库,只需要在Extend/Library目录下面创建Com目录,然后在里面增加相应的类库就可以方便的使用import方法导入了。例如,我们在Extend/Library/Com下面创建了Sina目录,并且放了Util\UnitTest.class.php类库文件,可以使用下面的方式导入import('Com.Sina.Util.UnitTest');目前官方提供的扩展或者第三方扩展都在ORG类库包下面。应用类库扩展项目类库的扩展,和基类库的扩展一样,我们可以在项目类库目录增加你想要的子目录,也只有在项目类库目录下面增加的类库才能使用import方法导入。例如,我们在MyApp的项目类库目录Lib下面增加Common和Util目录,就可以这样加载这些目录下面的类库文件了:import('MyApp.Util.UnitTest'); import('@.Common.CommonUtil');第三方类库扩展如果你直接使用的是第三方的类库包,或者是类名和后缀和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调用功能强大的JAVA类库相关文章推荐

1.php的Java模块php发布版中包含一个Java扩展模块,可以用来调用Java对象,例如:<?php$system=new Java("java.lang.System");print "Java version=".$system->getProperty("java.version")." <br>";?>使用这种方法的优点是比较方便,只要用new Java()来创建一个Java对象,就可以同php类一样来调用Java对象。但是这种方法也有以下明显的缺点:1.由于php的Java模块根据php的数据类型选择最适合的Java方法,因此无法调用Java过载的函数。2.php的Java模块将在当前Web Server的进程中载入JVM(Java虚拟机),因此系统开销极大,影响Web Server进程的执行效率。3.在某些操作系统和Web Server环境中,php的Java模块将使Web Server进程僵死。见http://www.php.net/bugs.php?id=6122。由于这些原因,php的Java模块一直无法应用到实际的的软件系统中。2.minij2ee应用服务器SJOP协议实现在介绍minij2ee应用服务器SJOP协议实现之前,先简单介绍一下minij2ee应用服务器。minij2ee应用服务器是第一款支持php的J2EE应用服务器产品,使php能够用于开发企业级应用系统。SJOP全称是Sample Java ORB Protocol(简单Java对象请求代理协议),是一种简单高效的对象请求代理协议。比如:<?php$conn=minij2ee_fetch_connection();print "Java version=".minij2ee_callstatic_javaobj($conn,"java.lang.System","getProperty","java.lang.String","java.version")." <br>";?>minij2ee应用服务器实现SJOP协议的主要目的是使php中能够访问EJB企业级组件,因此minij2ee提供了一个EJB-PHP编译器,可以把EJB组件编译成php的类,使php程序中能够方便的调用EJB组件,例如:<?phprequire("Cart.php"); file://Cart.php是编译Cart EJB后生成的Cart EJB的php类定义。$home=new CartHome(); file://创建EJB的Home接口。

推荐
不推荐
展开
收起
施诈术

phpqrcode类库怎么安装

调用PHP qrCode非常简单,如下代码即可生成一张内容为"http://www.learnphp.cn"的二维码.Php代码 include 'phpqrcode.php'; QRcode::png('http://www.learnphp.cn'); 那么实际应用中,我们会在二维码的中间加上自己的LOGO,已增强宣传效果。那如何生成含有logo的二维码呢?其实原理很简单,先使用PHP qr Code生成一张二维码图片,然后再利用php的image相关函数,将事先准备好的logo图片加入到刚生成的原始二维码图片中间,然后重新生成一张新 的二维码图片。本回答被提问者采纳

推荐
不推荐
展开
收起
小夜美

ajax调用PHP类库中的函数

直接调用不可能,但可以绕过去调用a.php<?php$_token = md5(time());//令牌$_SESSION['_TOKEN'] = $_token;//....?><html>...<form><input name="_TOKEN" value="<?php print $_token; ?>">....//这里说一下令牌,令牌一般是服务器端验证提交数据是否为合法//与验证码功能差不多,不过验证码需要手动输入,这个是程序内部使用...处理post<?phpif($_POST['_TOKEN'] == $_SESSION['_TOKEN']){$_SESSION['_TOKEN'] = '';//清除令牌,防止网络延缓的再次提交。...}?>然后是ajax上面我为什么要在你原来的程序上加入令牌呢,因为可以随意的调用php函数是很不安全的,很容易被有心人利用,所以做一点安全保护,当然不一定绝对安全function _new_ajax(){//创建XMLHTTPRequestsreturn xhr;}function _ajax(_option)//url, data, type, async{//初始化if(typeof _option.url == 'undefined' || _option.url == ''){alert('ajax错误,没有定义请求路径');return false;}_option.data = _option.data || {};_option.type = _option.type || 'GET';_option.async = _option.async || true;_option.callback = _option.callback || function(){};//开始请求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;}上面的是我简单写的,估计考虑不是很全验证用户是否存在就这样function check_user_id(){document.getElementById('useridexist').innerHTML = "Check the ID, Please wait...";var user_id = document.login.userid.value;//这里是上面说的,要直接使用函数库,必须安全验证var _TOKEN = document.login._TOKEN.value;_ajax({url:'class/useridexist.php',data:{_TOKEN:_TOKEN, function:check_user, id:user_id},//调用php函数check_usercallback:function(res){document.getElementById('useridexist').innerHTML = res;}})}好了,准备就绪,现在看php端了b.php<?phpif($_GET['_TOKEN'] == $_SESSION['_TOKEN']){//这里不清除令牌,因为提交post还要使用,验证在前,提交post在后$function = $_GET['function'];if(function_exists($function)){$function($_GET);}else{print '函数'.$function.'不存在';}}//以下为函数库function check_user($get){//.....验证存在否,输出}?>

推荐
不推荐
展开
收起
路理

PHP生成PDF,用什么类库好

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是最简单的。复杂的建议用 mpdf ,对中文的支持也很友好,也支持js.

推荐
不推荐
展开
收起
轶凡

PHP爬虫用什么类库

它的元素能够添加到数组中肯定已经存在(定义)了,当时我就想这段代码毫无意义,然后又去查了下手册,才知道isset函数的功能:当变量存在且不为空时才返回true。如果一个变量定义了,但是没有赋值,那么默认为空。上面的代码就是找出数组中第一个不为空的变量。

推荐
不推荐
展开
收起
申景裕

thinkphp扩展类库怎么用

把你的扩展类放到 ThinkPHP/Library 文件夹里,然后在控制器里引入,引入方法:import('Com.Sina.Util.Couter');$object = new \Counter();

推荐
不推荐
展开
收起
查看更多答案
收起