Странные имена переменных/методов/классов - PHP
У меня есть php файл, который я не могу прочитать, потому что все переменные/функции имеют странные имена!
Блок функции моего файла:
public static function ………… …… … ($ ……… … …… , $ …… ……… …… )
{
$ …… …… …… = strpos( …………… … …… :: ……… ……… … ($ ……… … …… ) , $ …… ……… …… );
return (false !== $ …… …… …… ) ? (int)floor($ …… …… …… / 4) : false;
}
Как я знаю, стандарты php не позволяют использовать точки и пробелы в имени varaible.
Я сам только что пришел, если есть что-то, связанное с character encoding
! как я нашел, кодировка файла windows-1252
.
Можно ли преобразовать эти точки и пробелы в нечто читаемое?
Кроме того, поскольку они являются переменными/функциями, они имеют более одного вхождения в файл.
Отредактировано # 1
Я открываю файл, как всегда, с помощью Notepad ++/Sublime Text под Widnows OS, и он не оплачивается или что-то в этом роде.
Отредактировано # 2
Script работает без проблем!
Отредактировано # 3
Ссылка на файл: https://www.dropbox.com/s/hoegvk0vz53cnyn/include.php
Ответы
Ответ 1
Кажется, ваши "пробелы" и "точки" не похожи на то, что они выглядят. В коде, опубликованном в вашем вопросе, это фактически "неразрывные пробелы" (c2 a0) и "многоточие" (e2 80 a6). Это вполне допустимые символы в идентификаторе.
(спасибо StackOverflow за 100% совместимость с UTF-8).
[править]
... но посмотрев на файл, который вы связали, кодировка файла - это скорее Windows-1252 (он же CP1252). Ответ по-прежнему верен, но соответствующие двоичные значения немного отличаются от тех, которые я упоминал выше.
Ответ 2
Здесь он преобразуется в нечто более читаемое.
public static function ………… …… … ( $a , $b )
{
$c = strpos( some_class::some_function($a), $b );
return (false !== $c) ? (int)floor($c / 4) : false;
}
Не видя другую функцию, которую она ссылается, или сообщение об ошибке, которое она дает, было бы трудно понять, почему она не удалась.
Этот код был преднамеренно запутанным по какой-либо причине. Возможно, чтобы люди перестали играть или, может быть, потому, что они получили лицензию. Если это не сработает, попробуйте обратиться к автору.