Можно ли указать расположение расширения библиотеки в файле Php

Я хочу загрузить расширение в файл Php, так как у меня нет доступа к файлу php.ini.

Я старался:

ini_set('extension','php_gd2.dll');

С файлом в том же каталоге, что и страница Php, но он не работает.

Всегда ли это нужно делать в php.ini, или это можно сделать, как описано выше?

2 ответа

Решение
if (!extension_loaded('php_gd2')) {
    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
        dl('php_gd2.dll');
    } else {
        dl('php_gd2.so');
    }
}

Но обратите внимание, что он не будет работать со всеми SAPI; и явно отключен при работе в безопасном режиме или PHP построен с поддержкой zts.

Обычно расширения загружаются во время выполнения, которое во многих случаях запускается сервером http. Так что это довольно невозможно ОБНОВЛЕНИЕ - я был не прав, вижу ответ Марк Бейкер, и действительно не нужно. В средах с общим хостингом у вас точно не будет доступа к такой функции (потому что это слишком рискованно), и когда у вас есть доступ к php.ini... Почему бы не использовать ее?

ОБНОВЛЕНИЕ: Если у вас даже нет доступа к php.ini, никто не сможет предоставить вам доступ к такой опасной функции, как пользовательские расширения (если администратор не плох в этом). Расширение имеет доступ к внутренним компонентам PHP и действительно может связываться с сервером.

Другие вопросы по тегам