A. php不打印调用栈
基于以上原因,今天我们就来讲一讲在 PHP 项目当中,怎样快速得到 PHP 调用栈。
PHP 调用栈,顾名思义就是从我们 Web 访问项目的时候,PHP 从执行开始到返回给我们结果的这一系列操作的 PHP 类/方法等调用的过程。
一、利用 XDebug 扩展的 xdebug_get_function_stack() 函数
对 XDebug 扩展了解的同学,可以知道 XDebug 的功能主要用于代码调试。其中,XDebug 就提供了一个非常有用的函数:xdebug_get_function_stack()。
从这个函数的的名字我们可以知道它就是获取方法调用栈的。
我们只需要在项目当中放到 PHP 脚本当中,只要这个方法被执行到。那么,这个方法就能打印 PHP 脚本从开始到执行到这个位置的所有调用栈。从而就能解决我们对代码执行流程不清晰的问题。
这个方法会返回一个数组。数据里面包含了执行的脚本文件路径、类名、方法名、参数等信息。
注:该方法生成的调用栈信息相对比较粗糙。对于简单初浅调试完成够用了。同时,要使用这个方法,必须安装 XDebug 扩展。PHP 安装 XDebug 扩展的教程网上很多。这里不赘述。
二、利用 phptrace 扩展查看
phptrace 是一个追踪(trace)PHP 执行流程的工具。这是奇虎 360 团队开源的一款 PHP 扩展工具。它本身的功能之一就是查看 PHP 调用栈。所以,推荐指数 5 颗星。
项目开源地址:https://github.com/Qihoo360/phptrace
安装扩展:
$ wget https://pecl.php.net/get/trace-1.0.1beta.tgz
$ tar zxvf trace-1.0.1beta.tgz
$ cd trace-1.0.1beta/extension
$ {php_bin_dir}/phpize
$ ./configure --with-php-config={php_bin_dir}/php-config
$ make
$ make cli
$ make install-all
然后在 php.ini 配置文件末尾增加:
extension=trace.so
重启我们的 PHP-FPM。
为了能在命令行使用 phptrace 提供的命令,我们还需要在刚刚的 exten
B. 如何查看别人网站的PHP源代码
这个是不能直接查看的只有几种途径:
PHP是编译的运行程序,在浏览器看到的是编译执行之后的展示页面,并不是源代码。
网站站长,公开共享免费提供网站源码整站下载的,可以拿到查看。
网站提供后台,给一定的人群,有一定的管理权限。可以解除代码。
服务器,部分网站因为某些原因,服务器是共享的,可以看到源代码。
C. 要实现查询MySQL数据库中的数据,如何用PHP语言编写查询的代码,要详细点的谢谢啊,有注释更好!
<?php
$db = mysql_connect ("数据库IP地址", "数据库用户名", "数据库密码");
//例如:$db = mysql_connect ("127.0.0.1", "root", "123456");
mysql_select_db ("要连接数据库的名字", $db);
$sql = "select * from tabel";//查询语句
$result = mysql_query ($sql);进行查询
$resultArr = mysql_fetch_array($result );得到结果返回数组
print_r($resultArr);打印结果
?>