如何在Javascript(浏览器)中运行PHP?

时间:2018-11-18 05:46:56

标签: javascript php

但是等待!我保证,这不是这些问题中的另一个。这是我鼓励做的一些自我回答的问题之一。

如何使用Javascript运行PHP?我不询问在服务器上运行PHP ,然后将结果字符串作为Javascript发送到浏览器。我实际上是在谈论Javascript解析和运行PHP。

这在许多地方可能有用:

  • 必须使用PHP模块的快速Node.js应用程序。
  • 浏览器的小型REPL,每个实例不需要整个VM。学习PHP的理想选择。
  • 为静态网站构造函数创建模板引擎。

我四处搜寻并发现了php-parserbabel-preset-php,但是没有任何运行。理想情况下,我正在寻找类似的内容,尽管我无法通过Google / SO / etc找到任何内容:

rooms

编辑:如果您知道比我自己的答案更好的方法,请随时分享!我对社区的想法很好奇。

2 个答案:

答案 0 :(得分:1)

有可能!使用问题中提到的两个库,剖析// No server needed, "just" Javascript parsing PHP alert(php(`<?= "Hello world" ?>`)); 并重用某些部分以将PHP转换为Javascript,然后评估Javascript。这是一个有效的演示,可以随时在babel-preset-php中编写一些基本的PHP,然后按<textearea>在浏览器中运行PHP:

run
const $ = sel => document.querySelector(sel);
$('#horrible').addEventListener('submit', e => {
  e.preventDefault();
  eval($('#horrible textarea').value);
});
body, html {
  margin: 0;
}

textarea {
  line-height: 1.5;
  margin: 0;
  height: 2.1em;
  padding: .3em .6em;
  border: 1px solid #ccc;
  background-color: #fff;
  border-radius: .2em;
  transition: all 0.3s;
  width: 90%;
}

button {
  display: inline-block;
  text-align: center;
  margin: 0;
  padding: .3em .9em;
  vertical-align: middle;
  background: #0074d9;
  color: #fff;
  border: 0;
  border-radius: .2em;
  width: auto;
  user-select: none;
  margin: .3em 0;
  cursor: pointer;
  transition: all 0.3s;
  border-radius: .2em;
  height: auto;
  box-shadow: 0 0 rgba(0,0,0,0) inset;
}

这是用于构建上面链接的<form id="horrible"> <textarea style="min-height:150px">const vars = { icon: &#x27;&#x1F389;&#x27; }; const out = php(&#x60;&#x3C;?= &#x22;for fun! &#x22;.$icon ?&#x3E;&#x60;, vars); alert(out);</textarea> <button data-tooltip="Are you sure? Like, 100%? There is no coming back">EVAL()</button> <script src="https://francisco.io/blog/running-php-in-javascript/php.min.js"></script>文件的实际代码段:

php.js

答案 1 :(得分:-1)

如果您想用jsvascript写东西。那么有必要将javascript代码保存在php文件中,即,如果文件名为temp.php

并且javascript代码应位于脚本标记中。

例如test.php(您的php文件名)

<html>
    <head>
        <script>
            function myFunc(){
                alert('<?php echo date("Y/m/d"); ?>');
            }

        </script>
    </head>
</html>

以上代码提示日期。上面的日期是一个php date函数。

最初,php服务器执行上述代码并将JS代码视为纯文本。

,在客户端/浏览器中如下图所示

<html>
    <head>
        <script>
            function myFunc(){
                alert("2018/06/30");
            }

        </script>
    </head>
</html>