我有一个php文件无法读取,因为所有变量/函数都有奇怪的名称!我的文件的一个功能块是:
public static function ………… …… … ($ ……… … …… , $ …… ……… …… )
{
$ …… …… …… = strpos( …………… … …… :: ……… ……… … ($ ……… … …… ) , $ …… ……… …… );
return (false !== $ …… …… …… ) ? (int)floor($ …… …… …… / 4) : false;
}
据我所知,php标准不允许在可变名称中使用点和空格
如果有什么与character encoding
有关的东西,我自己也来了!正如我发现的,文件编码是windows-1252
。
这些点和空格可以转换成可读的东西吗?
因为它们是变量/函数,所以它们在文件中有多个引用
编辑#1
我像往常一样在Widnows操作系统下用Notepad++/Sublime Text打开文件,它没有付费或其他什么。
编辑#2
脚本工作没有问题!
编辑#3
链接到文件:https://www.dropbox.com/s/hoegvk0vz53cnyn/include.php
看起来你的"空格"answers"点"并不是它们看起来的样子。在你在问题中发布的代码中,这些实际上是"不间断空格"(c2 a0)和"省略号"(e2 80 a6)。这些都是标识符中完全有效的字符。
(感谢StackOverflow能够100%兼容UTF-8)。
[编辑]
但查看了您链接的文件后,文件编码相当于Windows-1252(又名.CP1252)。答案仍然是正确的,但相应的二进制值与我上面提到的有点不同。
这里将其转换为可读性稍高的内容。
public static function ………… …… … ( $a , $b )
{
$c = strpos( some_class::some_function($a), $b );
return (false !== $c) ? (int)floor($c / 4) : false;
}
如果没有看到它引用的其他函数或它给出的错误消息,就很难理解它失败的原因。
不过,出于某种原因,这段代码被故意混淆了。也许是为了阻止人们摆弄,也许是因为它有许可证。如果它不起作用,也许你应该尝试联系作者。