Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中执行javascript_Php_Javascript - Fatal编程技术网

在PHP中执行javascript

在PHP中执行javascript,php,javascript,Php,Javascript,我相信在PHP中执行java脚本函数是可能的,但它会保持服务器端而不是客户端吗?我可以在PHP中调用一个.js函数,向它传递一些参数,然后让它返回调用它的PHP吗 我想要使用的脚本返回XML,我想要使用PHP获取用户输入,将它们传递给驻留在服务器上的.js函数,然后获取返回的XML并在PHP部分中解析它 我这样问是因为我看到有人评论说,因为.js是客户端,PHP是服务器端,所以他们相处不好。我希望通过在PHP中执行.js函数,我可以伪造来自本地机器(服务器)的.js调用 谢谢你提供的任何信息 不

我相信在PHP中执行java脚本函数是可能的,但它会保持服务器端而不是客户端吗?我可以在PHP中调用一个.js函数,向它传递一些参数,然后让它返回调用它的PHP吗

我想要使用的脚本返回XML,我想要使用PHP获取用户输入,将它们传递给驻留在服务器上的.js函数,然后获取返回的XML并在PHP部分中解析它

我这样问是因为我看到有人评论说,因为.js是客户端,PHP是服务器端,所以他们相处不好。我希望通过在PHP中执行.js函数,我可以伪造来自本地机器(服务器)的.js调用


谢谢你提供的任何信息

不能从PHP本身调用JavaScript。PHP不是JavaScript引擎

但是,与V8接口有一个PECL扩展:

您还可以与(服务器端)JavaScript引擎接口。看一看


如果您找到了一个可以调用的服务器端Javascript解释器,您就可以。我没有用过PHPJS(http://phpjs.berlios.de/)但它可能会起作用


听起来你最好的选择是替换js代码,因为你所做的听起来是个坏主意。

这并不像你想象的那么困难

  • 页面最初是用PHP/HTML呈现的
  • 用户在表单字段中输入信息
  • 使用Jquery Serialize函数将数据转换为可以传递的格式(javascript变量)
  • 将序列化数据传递给Javascript以获得所需的XML
  • 通过AJAX将返回的XML结果提交给PHP
  • PHP从Jquery获取作为POST提交的XML,并发挥了它的神奇作用

  • 仅供参考,有一个相对鲜为人知的通过PHP实现AJAX的解决方案,名为。在这种情况下,它可能不会对您有太多帮助,但它允许您对PHP函数进行AJAX调用。虽然PHP确实没有javascript解释器,但XAJAX和Jquery的Ajax是前端代码与服务器端功能交互的绝佳方式。

    我认为bpeterson做到了。但是如果您对AJAX感到不舒服,或者只是需要更多的细节

    首先-在按钮上执行操作(表单提交或其他)。action=“javascript:yourJsFunc()”。这个元素可能是通过PHP上的echos呈现的,或者只是静态编写的

    下一步-获取所需的参数。我建议使用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}); 
    }  
    
    函数yourJsFunc()
    {  
    var arg1=$('#arg1').val//或等效的DOM方法
    变量arg2。。。
    //如有必要,将其序列化
    var yourXML=outsideJSFunction(arg1、arg2等);
    $('#invisibleDiv').html('');
    $(“#您的表单”).submit();
    //或者$.get(“other.php”,{myXml:yourXml},function(){//whatever});
    }  
    
    简短的回答是否定的。我认为您可能需要稍微更改一下应用程序的设计。您是否可以实现在PHP中返回XML的函数(或者是否有一个PHP等价物来完成JS所做的工作)?PHP没有Javascript解释器。确实存在,但是在PHP代码中重新实现JS函数不是更容易吗?Javascript是第三方的。我希望有一个PHP版本。看起来很有趣。我要去看看。谢谢。我有一个为我的存储服务器运行的文件搜索应用程序,它有一个Javascript界面。服务器的web前端目前应该是PHP。我只是想将搜索功能包含到web前端中。@Robolulz所说的web前端是指在浏览器中运行的部分吗?如果是这样,为什么不直接从浏览器而不是从PHP调用storage server JS接口呢?另外,存储服务器是CouchDB还是其他NoSQL DB?对不起,希望这能有所帮助。我有一台linux机器作为我的文件服务器运行,我给了它一个web前端来处理一些需要的内容管理用户。这一切都在PHP中实现;很简单。我只想在web前端添加搜索系统上文件的功能。我目前使用的文件内搜索只提供了一个用于执行搜索的Javascript接口,它返回带有搜索结果(文件位置、排名等)的xml。我需要从PHP到JavaScript的用户输入,然后XML结果从JavaScript到PHP.@ RoBOLURZ,最大的问题是你是否真的需要PHP在中间。