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

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

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

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

asp2php

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

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

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

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


gez无知

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

使用方法

asp2php -dir ./ -o ./

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

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

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

速度很快,gez无知

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

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

对比看可以看出
gez无知

1、include没有处理gez无知

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

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

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

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

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


gez无知

自编转换程序

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

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

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

1、内置函数gez无知

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

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

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

2、数据库gez无知

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

3、正则表达式gez无知

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

4、gez无知

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

很赞哦! () 有话说 ()