im пытается реализовать на моем сайте систему, которая позволяет пользователю загружать файл, который должен быть изменен перед загрузкой.
У меня есть главный файл (программа .exe), внутри которого есть переменная, которая должна быть изменена для каждого другого пользователя.
Самое простое решение – изменить переменную внутри xml-файла каждый раз, когда пользователь хочет его персонализированный exe, а затем заставить exe-файл читать внешний файл. НО я не хочу, чтобы пользователь загружал несколько файлов.
Это возможно? используя php, я могу изменить параметр внутри скомпилированной программы? Спасибо за любую помощь и предложения!
Теоретически это возможно (PHP завершен полным), но, как указано в других ответах, вряд ли стоит хлопот (учитывая тот факт, что вы должны спросить, возможно ли это, вы должны будете исследовать, наконец, в течение нескольких дней в стандартный exe-формат). Я бы порекомендовал одно из следующих: 1) Замените программу конфигурационным файлом; либо использовать отдельную пусковую установку (например, Java [JAR – это ZIP-файл]) или добавить файл конфигурации, который считывается самой программой. Существует множество библиотек PHP для создания ZIP-файлов. 2) скомпилировать программу с измененным источником на самом сервере; однако это также может стать довольно сложным в зависимости от конфигурации сервера и используемой вами среды программирования. Если вы никогда не управляли виртуальным сервером, я бы даже не рекомендовал это в качестве опции. 3) Если вы можете предположить, что пользователь получил несколько стабильный доступ в Интернет, вы также можете рассмотреть возможность загрузки стандартного исполняемого файла, где дополнительная конфигурация будет загружаться позже самой программой (например, путем передачи имени пользователя на сервер). Однако это создает зависимости, которые вы, возможно, захотите избежать (ваш пользователь, вероятно, не может использовать его на компьютерах без доступа в Интернет, и вы должны утверждать, что ваш сервер больше всего времени).
Если вы действительно знаете, что делаете, и вы точно знаете, какие биты нужно перевернуть в файл, тогда да, можно изменить файл .exe с помощью PHP. В противном случае вам необходимо внести изменения в исходный или другие файлы, с которыми .exe создается и скомпилирует программу на сервере, прежде чем отправлять ее пользователю.
Хотя это возможно, я сомневаюсь, что это стоит хлопот. Если вы не пытаетесь бороться с пиратством или чем-то еще. Почему бы вам просто не использовать пользовательский .zip-файл с .exe и config .xml?
[edit после комментария OP]
Я предполагаю, что вы пытаетесь изменить, это идентификатор / имя пользователя facebook? Ну, попробуйте скомпилировать базовый файл с некоторой уникальной строкой типа «THISNEEDSTOBEREPLACED», а затем используйте некоторую двоичную безопасную функцию для ее замены. Хотя помните, что все может и будет сложно, если длины строк не совпадают.