繁体   English   中英

如何找出应用程序打开了哪些文件?

[英]How can I find out which files have been opened by the application?

get_included_files()很有用,但不包括使用fopen或file_get_contents打开的文件。

我也尝试过使用strace但是似乎无法适应特定的PHP流程。

更具体地说,我正在使用twig进行模板化,我想知道哪些文件以什么顺序包含在内。

到目前为止,我已经尝试过使用strace这样的方法,但是在该过程中出现了权限错误。

<?php

$pid = getmypid();

echo `strace -p {$pid} 2>&1 > log &`;

file_put_contents( 'afile', 'foobar' );

输出...

strace:附加:ptrace(PTRACE_ATTACH,...):不允许的操作无法附加到进程。 如果您的uid与目标进程的uid相匹配,请检查/ proc / sys / kernel / yama / ptrace_scope的设置,或者以root用户的身份重试。 有关更多详细信息,请参见/etc/sysctl.d/10-ptrace.conf

您可以使用经典的解决方法:

包装所有文件打开功能,例如: my_fopen ,并在那里进行日志记录。

只需几行代码,然后在代码库中进行搜索和替换。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM