Выполнение javascript в PHP

Я считаю, что в PHP можно выполнить функцию java-скрипта, но останется ли она на стороне сервера, а не на стороне клиента? Могу ли я, в PHP, вызвать функцию .js, передав ему некоторые аргументы и вернуть его к PHP, который его назвал?

Сценарий, который я хочу использовать, возвращает XML, и я хочу получить входные данные пользователя с помощью PHP, передать их функции .js, находящейся на сервере , а затем взять возвращаемый xml и проанализировать его обратно в части PHP.

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

Спасибо за любую информацию!

Solutions Collecting From Web of "Выполнение javascript в PHP"

Вы не можете вызывать JavaScript из самого PHP. PHP не является механизмом JavaScript.

Тем не менее, существует расширение PECL для взаимодействия с V8:

И вы можете взаимодействовать с (серверным) движком JavaScript. Посмотрите на node.js и

  • Рекомендация для интеграции nodejs с приложением php

Вы могли бы, если бы нашли интерпретатор Javascript на стороне сервера, на который вы могли бы обратиться. Я не использовал PHPJS (http://phpjs.berlios.de/), но он может работать.

Похоже, ваша лучшая ставка заключается в замене кода js, потому что то, что вы делаете, просто звучит как плохая идея.

Я думаю, что он прибил его. Но если вам неудобно с AJAX, или просто нужно немного больше деталей.

Сначала – введите действие на кнопку (форма submit или иначе). действие = "JavaScript: yourJsFunc ()". Этот элемент, вероятно, будет отображаться через эхо на вашем PHP или просто написан статически.

Далее. Получите нужные параметры. Я бы предложил методы jQuery или DOM, т.е. $ ('# blah') или document.getElementById ('blah'). val ();

Затем – установите скрытые входы для сохранения ответа, принудительно подайте или выполните запрос ajax. Вы находитесь на PHP с вашими ценностями!

function yourJsFunc() { var arg1 = $('#arg1').val //or equivalent DOM method var arg2... //serialize these if necessary var yourXML = outsideJSFunction(arg1, arg2, etc); $('#invisibleDiv').html('<form id="yourForm" method="POST"><input type="hidden" name="x" val="'+yourXML+'" /></form>'); $('#yourForm').submit(); //ALTERNATIVELY $.get("other.php", {myXml : yourXml}, function() {//whatever}); } 

Это действительно не так сложно, как кажется.

  1. Страница изначально создается PHP / HTML.
  2. Пользователь вводит информацию в поля формы.
  3. Используйте функцию Jquery Serialize, чтобы получить данные в формате (javascript var), который вы можете передать.
  4. Передайте сериализованные данные на ваш Javascript, чтобы получить желаемый XML-код
  5. Отправьте результаты XML в PHP через AJAX.
  6. PHP принимает XML, отправленный как POST из JQuery и делает свою магию.

FYI, относительно малоизвестное решение для AJAX через PHP называется XAJAX . Вероятно, это не поможет вам в этом случае слишком много, но это позволяет вам делать вызовы AJAX для функций PHP. Хотя верно, что PHP не имеет javascript-интерпретатора, XAJAX и JQuery Ajax – отличные способы взаимодействия внешнего интерфейса с функциональностью на стороне сервера.