我正在尝试在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代码,建议我解决一下。
答案 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();
});