奇怪的变量/方法/类名-PHP


Strange variable/method/class names - PHP

我有一个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;
}

如果没有看到它引用的其他函数或它给出的错误消息,就很难理解它失败的原因。

不过,出于某种原因,这段代码被故意混淆了。也许是为了阻止人们摆弄,也许是因为它有许可证。如果它不起作用,也许你应该尝试联系作者。