一直对火车头采集器的PHP插件很艳羡,不知道其原理。以为他是找了一个第三方的PHP库来开发的。
今天有闲,看了下火车头的目录,发现了其中的玄机。
其实很简单,火车头是直接执行 php.exe 来调用 PHP 代码的。
php.exe 有一个 –f 参数,可以直接执行php文件,并且能够接受命令行参数。具体语法:
php [options] [ -f ] file [[—] args…]
火车头调用php插件的步骤:
1. urlencode需要传递的信息。如果信息较短,直接通过命令行参数传递;如果较长,保存为一个 System/Temp/ 目录下的临时文件,将文件名通过命令行参数传递
2. 调用 php.exe –f 执行php插件
3. php插件urldecode命令行参数,获取从火车头程序过来的参数
4. 插件执行操作
5. 将结果serialize并打印,插件程序结束
6. 火车头收到php插件echo的内容,解码,处理。
注意: 火车头中,php.exe 和 php5ts.dll 保存在火车头主程序文件夹的system目录下。php.exe 被修改为 site.exe,php.ini 也被修改为 site.ini。
评论前必须登录!
注册