Эмуляция PHP-страницы для получения ответа в C # - PullRequest
0 голосов
/ 21 сентября 2010

Я просматривал Интернет, но не нашел своего ответа ... так как у меня заканчиваются идеи, я был бы признателен за помощь по этому вопросу Итак, вот оно: У меня есть некоторый код PHP, который берет путь к файлу и возвращает кучу информации, которая мне нужна. У меня есть исходный код (это с открытым исходным кодом), и я знаю мой C #. Моя проблема в том, что я хочу использовать этот код PHP из приложения C # в автономном режиме, эмулируя код PHP.

Есть идеи?

Спасибо.

Ответы [ 5 ]

1 голос
/ 21 сентября 2010

Если вам действительно нужно, вы всегда можете запустить интерпретатор PHP из C #, создав процесс.Я оставлю детали в MSDN.Однако лучше было бы просто перевести PHP на C # вручную.

1 голос
/ 21 сентября 2010

Вы можете установить сервер PHP на локальном компьютере и вызвать файл, используя HTTP-запрос, созданный с помощью c # (например, с помощью объекта WebRequest).Это удовлетворяет требованию работать в автономном режиме, и, поскольку у вас есть код PHP, вы можете внести незначительные изменения, чтобы приспособить любые параметры, которые вам нужно передать в него.

Однако , если это не для изолированногов случае контролируемой среды, я бы не советовал.

Если это для распространения на пользовательских машинах, это было бы а) нецелесообразно для развертывания и б) кошмар обслуживания.Если вы работаете на сервере и переписываете PHP на c # не вариант, он должен выполнить свою работу.

0 голосов
/ 19 ноября 2010

Старая тема, но подумал, что может использовать ответ.

Вы можете использовать кодовый комплекс Phalanger. http://phalanger.codeplex.com/ Позволяет взять существующие файлы php и скомпилировать их в .net

0 голосов
/ 23 сентября 2010

Если вы не хотите переводить код PHP в C #, вы должны вызвать интерпретатор PHP.

Сначала посмотрите на лицензию на код PHP, который вы используете.Когда я посмотрел на код ранее, я заметил, что все, кроме одного PHP-файла, имеют лицензию GNU GPL.GNU GPL должна работать на то, что вы хотите, но я рекомендую вам ознакомиться с GNU GPL, если вы еще этого не сделали.Вы должны также посмотреть, какая лицензия должна применяться к последнему файлу, прежде чем продолжить.

Во-вторых, перепишите файл ввода.Файл, о котором идет речь, - upload_file.php.Этот файл загружает другие файлы, как включает, анализирует файл воспроизведения SC2 и генерирует выходные данные для использования веб-браузером.Вам просто нужно переписать этот файл, чтобы он выводил упрощенную версию своего вывода на консоль.Возможно, он получит имя файла воспроизведения из аргументов командной строки.Другие файлы, помеченные как GNU GPL, можно просто скопировать непосредственно в ваш проект.Я должен также сказать, что здесь уже может быть консольная версия.Уделите минуту поиску одного.

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

В-четвертых, читать вывод.ваше приложение на C #.

0 голосов
/ 21 сентября 2010

Звучит так, как если бы вы захотели

  1. Перевести код PHP на C #
  2. Вызовите код PHP из .NET
  3. ???

Я не думаю, что именно эмуляция - это именно тот термин, который вы ищете.

Если вы можете сослаться на код PHP (если это OSS, есть ли сайт с дополнительной информацией?) Или вставить его сюда, мы, вероятно, расскажем вам, как лучше всего справиться с этим.

...