asp程序代码转php程序代码的工具方法,asp2php
微wx笑 2022-08-02【网页网站】 2 0关键字: asp php
很早之前写的一个asp的中解流量统计,想把它转换成php的代码,于是网上找了工具asp2php,好像也只有这一个。但是功能太不理想,还不如自己写一个。
asp2php
下载之后并没有直接解压,先是打开压缩包看到有三个文件,两个可执行一文件,一个配置文件;
杀毒,解压,但是解压之后发现只有两个文件,猜想是隐藏了,
设置文件夹选项,显示所有文件,显示出来了,
看来是希望使用它的人安装,顺便打个广告之类的,没有病毒不代表没有广告。
显示出来之后,取消隐藏属性,就可以使用了。
使用方法
asp2php -dir ./ -o ./
为了方便我直接把asp2php.exe放到了要转换的代码目录下
-dir 是要转换的代码目录
-o 是转换完输出保存的目录
速度很快,
但是转换结果非常的不理想。
asp代码
<!-- #include file = "../config.asp" --> <!-- #include file ="../class_index000.asp"--> <% on error resume next dim idx set idx = new gallely_index idx.cfPath = gal_counter_Path idx.ctPath = gal_DB_CT_Path idx.config() %>
转换后的php代码
<!-- #include file = "../config.asp" --> <!-- #include file ="../class_index000.asp"--> <? $on$error$resume$next; $new$gallely_index; $idx.$cfPath=$gal_counter_Path; $idx.$ctPath=$gal_DB_CT_Path; $idx.$config[]; ?>
对比看可以看出
1、include没有处理
2、on error resume next 处理不合理,个人觉得应该转换为 error_reporting(0);
3、set idx = new gallely_index 处理也不正确,应该是 $idx = new gallely_index(); 才对
4、idx.cfPath = gal_counter_Path 中的点应该转换为 ->
5、idx.config() 小括号居然转换成了中括号,真是太不可思议了
只对比了这么几行代码,可以说没有一行转换的是正确的。
自编转换程序
网上没有好用的工具,那就自己写一个吧,就用php来写;
由于文件较多,手动转换的话,太费时费力了,写一个工具以后还可能用的上;
转换过程中遇到一些难点:
1、内置函数
有些内置函数是asp有,但php没有的,
解决方法:可以自己定义
有些内置函数的参数顺序不一样,需要做调整
2、数据库
asp可以使用Access数据库,而php就不行了,需要转换为SQLite或Mysql,操作数据库部分有很多地方需要改;
3、正则表达式
asp有内置的类RegExp,而php是内置的方法,需要特别处理
4、
本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/blog/web/2022-08-02/1341.html