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

时间:2015-01-16 11:34:04

标签: 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) {
    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代码,建议我解决一下。

1 个答案:

答案 0 :(得分:3)

Node.js无法开箱即用。它不是PHP服务器,也无法解析PHP代码。您可以使用JavaScript PHP填充程序,但这些可能没有可靠的性能。

其中一个选项是php.js,它是一个JavaScript PHP VM,但即使如此,我也不建议这样做。

我全心全意的建议是,如果您要使用Node.js,请将代码转换为Node.js。您的代码转换也相对简单。见Node.js&#39;内置fs API。特别是,您已经用于读取PHP文件的fs.readFile()函数。

如果您需要将每个新行转换为HTML分页符,那么这也是相对微不足道的。首先,您要使用toString()方法将数据强制转换为字符串。您也可以使用正则表达式匹配,或使用split()join()将换行符转换为</br>。对于此示例,我将使用split() / join()方法。

E.g。

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();
});