#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() будет отключен.
Небольшие хостинговые компании могут быть более сговорчивыми с добавлением расширений, которые вам могут потребоваться.