小谈windows下右键菜单实现PHP文件的快捷预览(08-1-18更新)
时间:2007-12-04
来源:互联网
这不是一篇惊天动地的旷世文章,如果你想从中得到什么,那或许你可以让本文变的更完美。尽管如此,还是本人原创的,写出来和大家分享,希望能探讨出更优秀的解决方案。
非常感谢你能光临我的博客!并且希望本博客没有给你带来太多的恶心(如果有一点点,那就算了uplook)!改善自己的生存环境一直是人类不断追求的目标,我的目的极为单纯(就像某位N人说的,牛奶我只喝纯牛奶,水只喝纯净水,所以我很单纯!),就是为了改善开发环境,让自己在写PHP的时候更得心应手一些,再得心应手一些~
最终的功能描述:
当在你的本地服务器目录中任意右击一个文件,选择【在APACHE中预览】时,我们将打开一个浏览器窗口,以本地地址(localhost)预览该文件,这个功能对HTML的静态页面作用有限,但对于PHP类的文件,那就显得很有意义,这让你改变了传统的输入地址方式来预览(当然,IDE不在此列。)
请看截图演示:
我的APM环境装在D盘,apache的DocumentRoot指向D:\myserver\wwwroot,listen 8080,PHP的路径是D:\myserver\PHP5,现在,先建立一个批处理文件:
代码:
@echo offecho ^<?php>D:\myserver\wwwroot\test.php
echo $fil='%1';>>D:\myserver\wwwroot\test.php
echo $fil=str_replace(array('D:\\myserver\\wwwroot','\\'),array('http://localhost:8080','/'),$fil);>>D:\myserver\wwwroot\test.php
echo echo 'start /min '.$fil."\n";>>D:\myserver\wwwroot\test.php
echo echo 'del /q D:\myserver\wwwroot\test.php'."\n";>>D:\myserver\wwwroot\test.php
echo echo 'exit';>>D:\myserver\wwwroot\test.php
echo ?^>>>D:\myserver\wwwroot\test.php
D:\myserver\PHP5\php.exe -n -f D:\myserver\wwwroot\test.php >%tmp%\tmp.bat
start /min %tmp%\tmp.bat
exit
下面就是修改注册表,为我们的右键菜单加一项【在apache中预览】,运行regedit,定位大HCR/*/shell(选择*就可以让所有文件右键都有了此菜单项),在其下新建项RunPHP,默认那里填上在APACHE中预览,再在RunPHP下新建项command,默认值设为:"D:\myserver\PHP5\xphp.bat" %1,这样右键菜单就完成了,附上我的注册表导出项:
代码:
Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\RunPHP]
@="在APACHE中预览"
[HKEY_CLASSES_ROOT\*\shell\RunPHP\command]
@="\"D:\\myserver\\PHP5\\xphp.bat\" %1"
值得提醒的几点是:
1、这个右击菜单是针对所有的文件,这是我试图兼容HTML,带来的不便是可能存在未知的安全隐患,建议不要在EXE类的文件上选择在apache中预览。当然你可以将文中提到的*改为.php。
2、如果你的路径中包含单引号('),或者空格,那么这个脚本是不能正确的执行的!
3、文中的某些文件名以及注册表项名不是绝对的,你可以任意的改名。
4、这篇文章是本人的一个想法,也从实践中给我的工作带来了方便,如果你要转载,那是我的荣幸。尽管写的超烂,还是希望能保留出处,本文系Zendstudio.net原创文字,谢谢您这么有耐心的看完。
-----gently
===========================================================================================================
update:(2008-1-18 12:49:16)
感谢大家的支持,其实后面这些内容也写的蛮久了,只是一直觉得大家都没有兴趣,就没有放上来,现在,我看还是分享下,别说偶自私!~
前面写的那篇文章,一直都让本人诚惶诚恐,怕被人唾沫给淹死!!因为实在看不下去,包括我自己,而且就我自己测试而言,处理速度相当之慢,那天看书,无意中就了解了一下PHP的CLI模式,曾经记得在使用某国外的开源源码的时候,安装需要我指定php.exe的具体路径,当时也没多想,现在看来,他是在使用CLI模式来进行系统的安装的~,看了很久,总算知道了个大概。于是就改写了我的代码了――其实之前的问题一直是参数的传递!
(注册表的修改还是参考前面的那篇文章中的方案。)
bat文件的内容:
代码:
@echo offphp D:\myserver\PHP5\getURL.php %1 >%tmp%\tmp.bat
call %tmp%\tmp.bat
exit
PHP代码:
#!d:\myserver\php5\php.exe -q<?php
$phPath=$_SERVER['argv'][1];
$url=str_replace(array('\\','D:/myserver/wwwroot'),array('/','http://localhost:8080'),$phPath);
echo 'start /min '.$url."\n";
echo "exit\n";
?>
也许所有的部分就是这个$_SERVER['argv'],我想称呼他为CLI模式的精华一点不为过,有了这个,参数传递变的非常简单,PHP有了CLI模式,就离我们的生活更进了一步,我们可以做到的东西就更多了,比如清理系统垃圾、文件批量重命名、刷个锅、洗个碗什么的,这些实用功能就等着开发了,OK,又一篇软文,骗大家读到这里!好了,藏在身后的砖头都可以拿出来了
[ 本帖最后由 gently 于 2008-1-18 12:51 编辑 ]
作者: gently 发布时间: 2007-12-04

作者: imagic 发布时间: 2007-12-05
作者: spjhf 发布时间: 2007-12-06
作者: xuer 发布时间: 2007-12-06
作者: tc318 发布时间: 2007-12-06

作者: tc318 发布时间: 2007-12-06
作者: sundyandy 发布时间: 2008-01-18


我给更新下!!
作者: gently 发布时间: 2008-01-18


作者: MoHock 发布时间: 2008-01-18
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28