网页网站您现在的位置是:首页 > 博客日志 > 网页网站

asp程序代码转php程序代码的工具方法,asp2php

<a href='mailto:'>微wx笑</a>的头像微wx笑 2022-08-02网页网站 0 0关键字: asp  php  

很早之前写的一个asp的中解流量统计,想把它转换成php的代码,于是网上找了工具asp2php,好像也只有这一个。但是功能太不理想,还不如自己写一个。

asp2php

下载之后并没有直接解压,先是打开压缩包看到有三个文件,两个可执行一文件,一个配置文件;U5d无知

杀毒,解压,但是解压之后发现只有两个文件,猜想是隐藏了,U5d无知

设置文件夹选项,显示所有文件,显示出来了,U5d无知

看来是希望使用它的人安装,顺便打个广告之类的,没有病毒不代表没有广告。U5d无知


U5d无知

显示出来之后,取消隐藏属性,就可以使用了。U5d无知

使用方法

asp2php -dir ./ -o ./

为了方便我直接把asp2php.exe放到了要转换的代码目录下U5d无知

-dir 是要转换的代码目录U5d无知

-o  是转换完输出保存的目录U5d无知

速度很快,U5d无知

但是转换结果非常的不理想。U5d无知

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[];
?>

对比看可以看出
U5d无知

1、include没有处理U5d无知

2、on error resume next 处理不合理,个人觉得应该转换为 error_reporting(0);U5d无知

3、set idx = new gallely_index 处理也不正确,应该是 $idx = new gallely_index(); 才对U5d无知

4、idx.cfPath = gal_counter_Path 中的点应该转换为 ->U5d无知

5、idx.config() 小括号居然转换成了中括号,真是可不可思议了U5d无知

只对比了这么几行代码,可以说没有一行转换的是正确的。U5d无知


U5d无知

自编转换程序

网上没有好用的工具,那就自己写一个吧,就用php来写;U5d无知

由于文件较多,手动转换的话,太费时费力了,写一个工具以后还可能用的上;U5d无知

转换过程中遇到一些难点:U5d无知

1、内置函数U5d无知

有些内置函数是asp有,但php没有的,U5d无知

解决方法:可以自己定义U5d无知

有些内置函数的参数顺序不一样,需要做调整U5d无知

2、数据库U5d无知

asp可以使用Access数据库,而php就不行了,需要转换为SQLite或Mysql,操作数据库部分有很多地方需要改;U5d无知

3、正则表达式U5d无知

asp有内置的类RegExp,而php是内置的方法,需要特别处理U5d无知

4、U5d无知

本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.com/blog/web/2022-08-02/1341.html

很赞哦! () 有话说 ()