Хотел порадовать вас Django и Dojo, но волею судьбы пришлось возиться с PHP.
Итак, проблема: имеет файл file.php закодированный, например, ionCube. Надо узнать какие функции есть в нем и перегрузить какую-либо.
1. С помощью get_defined_functions() и Reflection или Doqumentor смотрим что есть в файле.
2. Далее, переименовываем файл в base.file.php и создаем file.php со следующим содержимым:
3. Все хорошо, можем перегрузить, например, функцию test_func():
Итак, проблема: имеет файл file.php закодированный, например, ionCube. Надо узнать какие функции есть в нем и перегрузить какую-либо.
1. С помощью get_defined_functions() и Reflection или Doqumentor смотрим что есть в файле.
2. Далее, переименовываем файл в base.file.php и создаем file.php со следующим содержимым:
<?php namespace testns; require("base.file.php"); ?>
3. Все хорошо, можем перегрузить, например, функцию test_func():
<?php namespace testns; require("base.file.php"); function test_func() { } ?>
Внутри файла вызов test_func() вызовет нашу новую функцию. Старую можно вызвать так: \test_func().
Вот, собственно, и все. За одним исключением: Если в файле base.file.php есть классы, то их нужно явно импортировать в текущий namespace. Например для класса TestClass это будет выглядеть так:
<?php namespace testns; require("base.file.php"); use \TestClass as TestClass; function test_func() { } ?>
Надеюсь это кому-то поможет!
Комментариев нет:
Отправить комментарий