Загрузка расширения PHP из скрипта с помощью dl ()

#php-5.3 #php #php-extension

#php-5.3 #php #php-расширение

Вопрос:

Я собираюсь купить (дешевое) хостинг-пространство с apache / php 5 / mysql. Поскольку это дешево, у меня нет прямого контроля над php.ini загрузкой и расширением.

Мой вопрос: могу ли я загрузить расширение, поместив .dll файл в мое пространство, а не используя dl() функцию php? Может ли хост отключить эту функцию, чтобы избежать загрузки пользовательского расширения таким образом?

Комментарии:

1. Если extension_loaded() функция работает так, как я предполагаю, исходя из чтения документов, вы можете попытаться загрузить расширение с помощью dl() , а затем проверить, что оно стало доступно с помощью if (!extension_loaded([EXTENSION])) { echo "Failed to load extension"; exit(); } , и тогда вы сможете запретить работу вашего кода, если он не загружается. Просто в сторону.

2. Гремо, взгляни на alwaysdata.com/plans/shared У них есть бесплатный тарифный план, с которого вы можете начать, а затем, если вам понадобится трафик, я уверен, что их самый дешевый тарифный план не будет проблемой. Они были очень любезны со мной. Для гораздо менее гибкого варианта, но более дешевых и очень стабильных серверов попробуйте 1and1.com/?affiliate_id=328546

Ответ №1:

Да, его можно отключить с помощью enable_dl настроек и safe_mode php.ini (что почти наверняка так и будет, поскольку в противном случае вы могли бы, например, загрузить свой собственный код в процессе веб-сервера).

И это в дополнение к disable_functions настройке, которая может отключить что угодно.

Комментарии:

1. Не совсем верно, что вы можете отключить что угодно, например, вы не можете отключить eval , к сожалению, потому что это одна из худших и опасных функций PHP. Это потому eval , что это языковая конструкция, а не функция.

Ответ №2:

хост может отключить любую функцию в php из php.ini. на самом деле я был бы удивлен, если бы хост оставил эту функцию включенной.

Ответ №3:

Поскольку вы говорите о .dll, вы предполагаете, что на хостинговом сервере Windows работает PHP, однако лучше проконсультироваться с хостинговой компанией, потому что, вероятно, dl() будет отключен.

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