Emacs无内置PHP文档搜索功能,需手动配置:可用php --rf命令查函数定义,或通过LSP+intelephense实现悬停提示与跳转;旧式HTML手册路径难统一且版本易错,不推荐。

Emacs里根本没内置PHP文档搜索功能
Emacs本身不带PHP标准函数手册(如 array_filter、json_encode)的本地索引或在线查询机制。它不像PHPStorm按 Ctrl+Q 就弹出完整文档,也不像VS Code装了PHP IntelliSense后悬停即显。你看到的“搜索PHP文档”,实际是靠外部工具链 + 手动配置拼出来的能力。
用 man 或 php --rf 命令查函数定义最靠谱
PHP CLI 自带两个实用命令,配合Emacs的 shell-command 或 compile 可直接调用:
-
php --rf:显示函数签名、参数、返回值和源码位置(如果函数是内部函数,会标出“Internal function”) -
man php或man 3 php(部分Linux发行版支持):查看PHP手册页(需提前安装php-manual包)
在Emacs中快速执行:
(defun php-lookup-function (func) "Look up PHP function using `php --rf`." (interactive "sPHP function name: ") (shell-command (format "php --rf %s" func)))
绑定快捷键:(define-key php-mode-map (kbd "C-c d") 'php-lookup-function)。光标停在 file_get_contents 上,按 C-c d,回车,结果就输出在 *Shell Command Output* 缓冲区里。
立即学习“PHP免费学习笔记(深入)”;
别信“自动跳转到PHP手册HTML”的插件
有些旧教程推荐用 eww 或 firefox 打开本地PHP手册HTML文件(如 file:///usr/share/doc/php-manual/en/function.array-filter.html),但问题极多:
- 路径因系统/安装方式差异极大,
/usr/share/doc/下未必有,Windows更难对齐 - Emacs无法解析HTML里的锚点,
array_filter跳不到对应节,只会打开首页 - 手册版本和你当前PHP版本不一致,比如查
str_contains(PHP 8.0+)却打开 PHP 7.4 手册,结果为空
真要离线查文档,建议直接下载官方CHM或PDF版,用系统默认阅读器打开——Emacs不是万能文档浏览器。
想长期高效查PHP文档?得靠LSP + intelephense
现代方案是放弃“搜索文档”这个动作,转向“实时悬停提示+定义跳转”。核心是:lsp-mode + intelephense(语言服务器),不是php-mode自带的功能:
- 必须全局安装
intelephense:npm install -g intelephense - Emacs配置里启用LSP:
(add-hook 'php-mode-hook #'lsp-deferred) - 首次打开.php文件时,LSP会自动拉起intelephense,之后悬停在
date()上,lsp-ui-hover就显示签名与简要说明;按M-.(lsp-find-definition)可跳转到内置函数声明(虽无源码,但有类型信息)
注意:intelephense 的文档提示依赖其内置符号表,对用户自定义函数也有效,但对纯C实现的PHP内置函数,只提供签名,不提供手册级描述——这是技术限制,不是配置错误。
真正卡住多数人的不是“怎么搜”,而是误以为php-mode或company-php能提供文档。它们只管补全和语法,不碰语义。查PHP文档这件事,在Emacs里从来不是开箱即用的,得明确选择命令行快查、LSP深度集成,或者干脆切出去看浏览器里的php.net页面。











