【问题标题】:How to run PHP Script in Node.js? [duplicate]如何在 Node.js 中运行 PHP 脚本? [复制]
【发布时间】:2015-01-16 11:34:04
【问题描述】:

我正在尝试在 Node.js 中运行 php 代码。但是当在浏览器中输入 localhost:4000 时,index.php 的整个代码就会显示在浏览器中。

Node.js 代码

var http = require('http'),
fs = require('fs'),
var app = http.createServer(function (request, response) {
fs.readFile("index.php", 'utf-8', function (error, data) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.write(data);
    response.end();
}); }).listen(4000);

PHP 代码:

<?php

$handle = fopen("data.txt", "r");
if ($handle) {
    while (($line = fgets($handle)) !== false) {

         echo $line;
         echo '<br>';
    }
} else {
    // error opening the file.
} 
 fclose($handle);
?>

所以,请告诉我,我如何通过 node.js 运行 PHP 代码,建议我一些解决方案。

【问题讨论】:

  • PHP 需要被解释,你所做的只是获取文件内容并显示。我不知道你为什么要这样做,但这不是前进的方向。
  • 我不认为你可以,你需要在你的服务器上运行 php。为什么要将 Node 与 php 混合使用。它们是 2 种服务器语言。您的 Node 服务器不知道如何解释 php 文件
  • 好的,谢谢,你能建议我,如何通过node.js运行PHP脚本
  • 你需要运行 PHP 并传入各种环境变量……不知何故。这要么是一个非常广泛的主题,要么是对预先编写的解决方案的推荐。无论哪种方式,它都与 SO 无关。

标签: php node.js


【解决方案1】:

Node.js 无法开箱即用地运行 PHP。它不是 PHP 服务器,无法解析 PHP 代码。您可能可以使用 JavaScript PHP shim,但这些可能不具有可靠的性能。

php.js 是一个这样的选项,它是一个 JavaScript PHP VM,但即使如此,我也不推荐这样做。

如果您打算使用 Node.js,我衷心建议您将代码转换为 Node.js。您的代码转换起来也相对简单。请参阅 Node.js 内置的 fs API。特别是 fs.readFile() 函数,您已经在使用它来读取 PHP 文件。

如果您需要将每个新行转换为 HTML 分页符,这也相对简单。首先,您需要使用toString() 方法将数据强制转换为字符串。您还可以使用正则表达式匹配,或使用split()join() 将换行符转换为&lt;/br&gt;。对于这个例子,我将使用split()/join() 方法。

例如

fs.readFile('filename.txt', 'utf-8', function(err, data) {
    var str = data.toString();
    str = str.split(/\r\n|\r|\n/g).join('</br>');
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.write(str);
    res.end();
});

【讨论】:

    猜你喜欢
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    • 2015-02-18
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多