PHP 检查扩展库或函数是否可用的代码

本文介绍的函数其实是PHP手册上本来就有的,但是由于这些函数独立性较强,查找不易,所以单独介绍一下,方便查阅。
1. 获取所有可用的模块 - get_loaded_extensions 该函数返回所有已经加载的(可用的)模块。
用法:


代码如下:

print_r(get_loaded_extensions());

2. 获取指定模块的可用函数 - get_extension_funcs 该函数返回指定模块所有可用的函数。传入的参数(模块名称)必须是小写
用法:


代码如下:

print_r(get_extension_funcs("gd"));

3. 获取所有已经定义的函数 - get_defined_functions 该函数返回所有已经定义的函数,包括内置函数和用户自定义函数。
用法:


代码如下:

function myrow($id, $data){
return "<tr><th>$id</th><td>$data</td></tr>\n";
}
$arr = get_defined_functions();
print_r($arr);

输出:


代码如下:

Array
(
[internal] => Array
(
[0] => zend_version
[1] => func_num_args
[2] => func_get_arg
[3] => func_get_args
[4] => strlen
[5] => strcmp
[6] => strncmp
...
[750] => bcscale
[751] => bccomp
)
[user] => Array
(
[0] => myrow
)
)

其中 $arr["internal"] 是内置函数, $arr["user"] 是用户自定义函数。
4. 检查指定函数是否存在 - function_exists 该函数返回指定函数是否已经定义。
用法:


代码如下:

if (function_exists('imap_open')) {
echo "IMAP functions are available.<br />\n";
} else {
echo "IMAP functions are not available.<br />\n";
}

(0)

相关推荐

  • Linux下为PHP添加扩展库的方法

    加上会出什么问题,不加会报什么错:所以在编译PHP的时候除了必要的目录指定,好多参数都没有加--等我在安装web程序的时候,才发现,很多参数是要加上的,但是我lnmp已经搭建好了,也不想重新编译,重新安装..于是就在网上找到了此文 一.添加FTP扩展 1.找到原来的源码包解压一下如:php-5.2.13进入到到FTP的扩展目录/root/lnmp/php-5.3.0/ext/ftp 2.调用phpize程序生成编译配置文件 复制代码 代码如下: root@dns ftp]# /usr/local

  • PHP 检查扩展库或函数是否可用的代码

    本文介绍的函数其实是PHP手册上本来就有的,但是由于这些函数独立性较强,查找不易,所以单独介绍一下,方便查阅. 1. 获取所有可用的模块 - get_loaded_extensions 该函数返回所有已经加载的(可用的)模块. 用法: 复制代码 代码如下: print_r(get_loaded_extensions()); 2. 获取指定模块的可用函数 - get_extension_funcs 该函数返回指定模块所有可用的函数.传入的参数(模块名称)必须是小写 用法: 复制代码 代码如下: p

  • Javascript面向对象扩展库代码分享

    lang.js库提供了包和类的定义.类的继承与混合(mixin).函数重载等功能,基本可满足大多数面向对象设计的需求.同时支持基于链式的定义方式,让库在使用时更加规范和便捷.下面首先通过简单的例子演示了lang.js的基本功能,之后给出了lang.js的源码及注释. 一.功能介绍 "lang"作为框架的全局定义,其中包括了四个方法: lang.Package(string name) //用于定义包(默认会暴露到全局) lang.Class(string name[, object c

  • 一个取得文件扩展名的函数

    一个取得文件扩展名的函数 <?  /* GetFileType  用法:GetFiletype($filename) */ function GetFiletype($Filename) { if (substr_count($Filename, ".") == 0) {        // 检查文件名中是否有.号. return;                // 返回空 } else if (substr($Filename, -1) == ".") {

  • Javascript string 扩展库代码

    Javascript原生的String处理函数显得很不够丰富,原生string函数:http://www.jb51.net/w3school/js/jsref_obj_string.htm问题1:是否有只是针对String类型的扩展库呢?有,不多,不全面. 观点2: JQuery的强大在于DOM操作,因此不希望js string 扩展库是基于jquery开发的,是否认同? 问题3:我们需要什么样的string扩展函数?这个问题可以参考其他js库,以及其他语言的string操作函数 Prototy

  • PHP加密扩展库Mcrypt安装和实例

    mcrypt简单介绍PHP程序员们在编写代码程序时,除了要保证代码的高性能之外,还有一点是非常重要的,那就是程序的安全性保障.PHP除了自带的几种加密函数外,还有功能更全面的PHP加密扩展库Mcrypt和Mhash.其中,Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原.mcrypt 是 php 里面重要的加密支持扩展库,linux环境下:该库在默认情况下不开启.window环境下:PHP>=5.3,默认开启mcrypt扩展.1.Mcrypt()库的安装 mcypt是一

  • 如何用C代码给Python写扩展库(Cython)

    之前一篇文章里提到了利用Cython来编译Python,这次来讲一下如何用Cython给Python写扩展库. 两种语言混合编程,其中最重要的是类型的传递. 我们用一个简单的例子进行入门:这次的目标是用C语言写一个Numpy的加法和元素相乘模块.在本例中,Numpy的array被传入到C语言模块内,变成了二维数组. 1. 头文件main.h: #ifndef _MAIN_H #define _MAIN_H void plus(double *a, double *b, double *r, in

  • Python使用扩展库pywin32实现批量文档打印实例

    本文代码需要正确安装Python扩展库pywin32,建议下载whl文件进行离线安装.然后调用win32api的ShellExecute()函数来实现文档打印,系统会根据文档类型自动选择不同的软件进行打开并自动打印,如果要打印的是图片的话,需要手工确认一下. 关于ShellExecute()函数的参数含义请查阅Windows API或pywin32帮助文档. import win32print import win32api for fn in ['1.txt', '2.txt', '3.txt

  • ASP.NET Core扩展库之日志功能的使用详解

    上一篇我们对Xfrogcn.AspNetCore.Extensions扩展库功能进行了简单的介绍,从这一篇文章开始,我将逐步介绍扩展库中的核心功能.     日志作为非业务的通用领域基础功能,有非常多的技术实现,这些第三方库避免了我们花费时间去重复实现,不过,很多日志库配置复杂,不易于使用,入手较难,而有些库可能与ASP.NET Core的结合并不好.     如果我们没有对所使用的日志库进行详细了解,日志库也可能产生严重的问题,在我的开发生涯中,曾经遇到过多次因为日志库而导致的生产事故.  

  • python 网页解析器掌握第三方 lxml 扩展库与 xpath 的使用方法

    今天说的则是使用另外一种扩展库 lxml 来对网页完成解析.同样的,lxml 库能完成对 html.xml 格式的文件解析,并且能够用来解析大型的文档.解析速度也是相对比较快的. 要掌握 lxml 的使用,就需要掌握掌握 xpath 的使用方法,因为 lxml 扩展库就是基于 xpath 的,所以这一章的重点主要还是对 xpath 语法使用的说明. 1.导入 lxml 扩展库.并创建对象 # -*- coding: UTF-8 -*- # 从 lxml 导入 etree from lxml im

  • ASP.NET Core扩展库之Http请求模拟功能的使用

    如今,完全独立的业务应用几乎不存在,不管是在企业内部微服务之间的调用,还是与外部第三方服务的调用,Http的API交互是常见的场景,这些实际情况给我们的开发带来了比较大的挑战,一是第三方服务可能会牵制我们的开发进度,特别是在多团队开发的情况下,由于依赖于其他团队的服务,有时候需要等待其他团队的进度,导致自己团队的无效等待.有时因为其他团队的延期,导致团队的被动延期.二是第三方服务的质量问题或开发过程中的频繁更新导致的部署问题,将严重拖累自己团队的开发进度,同时让你无法专心的开发自己的服务.三是单

随机推荐