создание и установка пользовательских функций php - PullRequest
3 голосов
/ 01 апреля 2010

Я хотел бы знать, как создать функцию php, которая может быть установлена ​​в php так же, как уже встроенные функции, такие как:

rename
copy 

Главное, чего я хотел бы достичь, - это простая функция php, которую можно вызывать со ЛЮБОЙ php-страницы на всем хосте без необходимости иметь функцию php на странице php / без необходимости включения.

Я просто хотел бы создать функцию, которая будет работать так:

location();

что без заданной входной строки будет выведено текущее местоположение файла через echo и т. Д.

Ответы [ 3 ]

9 голосов
/ 01 апреля 2010

Ну, здесь есть несколько вариантов. Одним из них является расширение языка путем написания расширения. Вам нужно было бы покопаться в исходном коде PHP, написать его на C и разобраться с Zend Engine внутри. Вы, вероятно, не сможете использовать это на общем хосте, и это займет довольно много времени и, вероятно, того не стоит.

Что бы я сделал, это поместил все ваши функции в отдельный файл PHP, скажем, helper_functions.php. Теперь зайдите в ваш php.ini и добавьте директиву: auto_prepend_file = helper_functions.php. Этот файл должен находиться в одном из каталогов, указанных в вашей include_path (это тоже директива php.ini).

То, что это делает, в основном автоматически помещает include 'helper_functions.php'; в каждый скрипт. Каждый запрос будет включать эти функции, и вы можете использовать их глобально.

Подробнее об auto_append_file .

2 голосов
/ 01 апреля 2010

Как уже говорили другие, есть, вероятно, более простой и лучший способ сделать большинство вещей. Но если вы хотите написать расширение, попробуйте следующие ссылки:

http://docstore.mik.ua/orelly/webprog/php/ch14_01.htm

http://www.tuxradar.com/practicalphp/2/3/0

0 голосов
/ 01 апреля 2010

Итак, вы хотите расширить базовый язык PHP, чтобы создать функцию с именем location(), написанную на C, которая может быть сделана на PHP:

echo __FILE__;

правый. Получайте удовольствие, делая это.

...