首页 > 后端开发 > 正文

php如何获取函数被调用位置

2024-08-09 16:32:20 | 我爱编程网

今天我爱编程网小编整理了php如何获取函数被调用位置相关信息,希望在这方面能够更好的大家。

本文目录一览:

php如何获取函数被调用位置

PHP直接调用函数和调用另外一个文件中的函数的区别

//如果是PHP文件中的函数,唯一的区别是:先引入外部文件,然后直接调用。
//如果是外部类文件中的函数,需要引入,然后new 对象后,再调用该对象的函数。
$msg=test_msg();
function test_msg(){
echo "";
}

//调用外部文件中的函数
//首先引入文件
include_once 'file.php';
$msg=test_msg();
function test_msg(){
echo "";
}

php如何获取函数被调用位置

php调用dll文件里面的函数

1、首先从 www.php.net 网站上下载php源码,此处以php-5.2.17版本为例,下载后解压至E:盘根目录下(目录可以自己随意定)。
2、下载安装VC++ 6.0,因为PHP源码是利用6.0版本写的,所以使用这个版本编译不会出现意外,别的版本未测试。
3、把VC++ 6.0安装目录中的 Microsoft Visual Studio\Common\MSDev98\Bin 绝对路径添加到系统环境变量中。
4、进入E:\php-5.2.17\ext目录,复制skeleton文件夹,并重命名为要开发扩展的名字,本例为“myfun”。
5、重命名skeleton.c为myfun.c,skeleton.dsp为myfun.dsp
6、编辑myfun目录中的php_skeleton.h、myfun.c、myfun.dsp这三个文件,替换内容中所有extname为myfun,EXTNAME为MYFUN。(一定要严格区分大小写)
下面就进入到编码阶段:
7、打开php_skeleton.h文件(头文件),找到PHP_FUNCTION(confirm_myfun_compiled);,在 PHP_FUNCTION(confirm_myfun_compiled);,下面编写PHP_FUNCTION(mb_MessageBox);,声 明一个mb_MessageBox函数,此函数的作用仅是输出js弹出一个alert消息框,用于测试。
8、下面定义函数入口,打开myfun.c文件,找到PHP_FE(confirm_myfun_compiled,NULL) ;,在下面编写 PHP_FE(mb_MessageBox,NULL),此处注意一下,PHP_FE是定义的一个宏,所以后面不用加引号。
9、在myfun.c最后面编写函数的实体部分:

PHP_FUNCTION(mb_MessageBox)
{
char *arg = NULL;
int arg_len, len;
char *strg;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
return;
}

len = spprintf(&strg, 0, "<script>alert('%s')</script>",arg); //此处正是输入的js代码
RETURN_STRINGL(strg, len, 0);
}

到这代码书写就完成了,下面开始编译:
10、开始->运行,输入CMD,打开命令行窗口。
11、进入myfun的目录,输入 msdev myfun.dsp /MAKE "myfun - Win32 Release_TS",回车编译。
12、如果没有错误,在E:\php-5.2.17下会生成一个Release_TS文件夹,在里面就可以找到php_myfun.dll文件。
至此扩展dll开发完成,下面在php中进行测试:
13、把php_myfun.dll复制到原php目录中的ext文件夹内。
14、打开php.ini文件,添加当前dll的扩展 extension=php_myfun.dll
15、重启apache,在网站目录下新建一文件,输入以下内容:
<?php
echo mb_MessageBox("测试PHP扩展DLL by 马犇");
?>
浏览即可看到效果

php如何获取函数被调用位置

php如何获取函数被调用位置

我爱编程网(https://www.52biancheng.com)小编还为大家带来php如何获取函数被调用位置的相关内容。

<?php
function get_caller_info() {
$c = '';
$file = '';
$func = '';
$class = '';
$trace = debug_backtrace();
if (isset($trace[2])) {
$file = $trace[1]['file'];
$func = $trace[2]['function'];
if ((substr($func, 0, 7) == 'include') || (substr($func, 0, 7) == 'require')) {
$func = '';
}
} else if (isset($trace[1])) {
$file = $trace[1]['file'];
$func = '';
}
if (isset($trace[3]['class'])) {
$class = $trace[3]['class'];
$func = $trace[3]['function'];
$file = $trace[2]['file'];
} else if (isset($trace[2]['class'])) {
$class = $trace[2]['class'];
$func = $trace[2]['function'];
$file = $trace[1]['file'];
}
if ($file != '') $file = basename($file);
$c = $file . ": ";
$c .= ($class != '') ? ":" . $class . "->" : "";
$c .= ($func != '') ? $func . "(): " : "";
return($c);
} 我爱编程网

以上就是我爱编程网小编给大家带来的php如何获取函数被调用位置全部内容,希望对大家有所帮助!更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“php如何获取函数被调用位置”相关推荐
php函数strrchr php 获取字符串某字符的位置!
php函数strrchr php 获取字符串某字符的位置!

php中的strstr()与strchr()的区别strchr()和strstr()是同义函数。功能效用完全一样。echostrstr('abc@123.com','@');//默认返回查找值@之后的尾部,@123.comechostrstr('abc@123.com','@',TRUE);//参数设定true,返回查找值@之前的首部,abcphp获取字符串某字符的位置!有以

2024-09-04 12:35:05
php转大写函数 php 获取字符串某字符的位置!
php转大写函数 php 获取字符串某字符的位置!

strtoupper函数的功能把所有字符转换为大写。在PHP中将字符转为大写的函数是“strtoupper()”,该函数的作用是将字符串转化为大写,语法为“strtoupper(string$string)”,返回值为转换后的大写字符串。该函数是二进制安全的。PHP数字大小写转换?&lt;?phpfunctiondaxie($number){$number=sub

2024-07-25 22:34:33
php 获取字符串某字符的位置! php strspn语法
php 获取字符串某字符的位置! php strspn语法

php获取字符串某字符的位置!有以下几种方法:stripos()返回字符串在另一字符串中第一次出现的位置(大小写不敏感)stristr()查找字符串在另一字符串中第一次出现的位置(大小写不敏感)strpos()返回字符串在另一字符串中首次出现的位置(对大小写敏感)strrchr()查找字符串在另一个字符串中最后一次出现的位置。strripos()查找字符串在另

2024-10-06 18:54:32
如何调试PHP的Core之获取基本信息
如何调试PHP的Core之获取基本信息

如何调试PHP的Core之获取基本信息在这个过程中,会涉及到对PHP的函数调用,PHP的传参,PHP的一些全局变量的知识.首先,让我们生成一个供我们举例子的Core文件:&lt;?phpfunctionrecurse($num){recurse(++$num);}recurse(0);运行这个PHP文件:$phptest.phpSegmentati

2024-09-06 10:11:14
php+impl函数 析构函数会在何时被调用?
php+impl函数 析构函数会在何时被调用?

php登录问题总是msg=“用户名不能为空”为什么要用isset($_POST["uId"])呢?isset是判断变量的,你可以这样用isset($_POST),判断一个变量的值是否为空就直接用empty()函数就可以了。把你的isset改为empty就不会报错了,要注意理解isset函数和empty函数的用法。还有一种可能就是你传过来的参数后台没有接收到,比如前端用的是G

2024-11-09 02:59:20
php如何取得ipphp获取
php如何取得ipphp获取

php如何取得ipphp获取PHP如何获取用户的真实IP?php获取用户真实ip的方法:方法1://获取REMOTE_ADDR属性,可以直接获取ip$IP=$_SERVER[远程ADDR];echo$ip方法二://从服务器获取HTTP_VIA,如果得到就用HTTP_X_FORWARDED_FOR的值替换,如果得不到就取REMOTE_ADDR的值。

2024-07-23 10:48:51
php 获取某字符串时,字符最后出现的位置在哪里?
php 获取某字符串时,字符最后出现的位置在哪里?

php获取字符串某字符的位置!有以下几种方法:stripos()返回字符串在另一字符串中第一次出现的位置(大小写不敏感)stristr()查找字符串在另一字符串中第一次出现的位置(大小写不敏感)strpos()返回字符串在另一字符串中首次出现的位置(对大小写敏感)strrchr()查找字符串在另一个字符串中最后一次出现的位置。strripos()查找字符串在另

2024-07-20 09:10:19
如何用php获取网页源码
如何用php获取网页源码

如何用php获取网页源码1、使用file_get_contents获得网页源代码。这个方法最常用,只需要两行代码即可,非常简单方便。2、使用fopen获得网页源代码。这个方法用的人也不少,不过代码有点多。3、使用curl获得网页源代码。使用curl获得网页源代码的做法,往往是需要更高要求的人使用,例如当你需要在抓取网页内容的同时,得到网页header信息,还有ENCODING编码的使

2025-02-18 00:38:02