如何在Node.js中运行PHP脚本?

如何在Node.js中运行PHP脚本?,php,node.js,Php,Node.js,我正在尝试在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) {

我正在尝试在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代码,给我建议一些解决方案。

node.js无法直接运行PHP。它不是PHP服务器,无法解析PHP代码。您可能能够使用JavaScript PHP垫片,但这些垫片可能不会有可靠的性能

一个这样的选项是,这是一个JavaScript PHP虚拟机,但即使如此,我也不建议这样做

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

如果需要将每一行转换为HTML分页符,这也相对简单。首先,您需要使用该方法将数据强制为字符串。您还可以使用正则表达式匹配,或者使用
split()
join()
将换行符转换为

。对于本例,我将使用
split()
/
join()
方法

例如

fs.readFile('filename.txt','utf-8',函数(err,data){
var str=data.toString();
str=str.split(/\r\n |\r |\n/g).join(“
”); res.writeHead(200,{'Content-Type':'text/plain'}); res.write(str); res.end(); });
PHP需要解释,您所做的只是获取文件内容并显示。我不知道你为什么要这样做,但这不是前进的方向。我不认为你可以,你需要在你的服务器上运行php。为什么要将Node与php混合使用。它们是两种服务器语言。您的节点服务器将不知道如何解释php文件好的,谢谢,您可以建议我,如何通过Node.js运行php脚本您需要运行php并以某种方式传递各种环境变量。这要么是一个非常广泛的主题,要么是一个预先编写的解决方案的建议。无论哪种方式,这都是离题的。
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();
});