/ / Wie führe ich PHP-Skript in Node.js aus? [duplizieren] - php, node.js

Wie führe ich PHP-Skript in Node.js aus? [duplizieren] - php, node.js

Ich versuche, PHP-Code in Node.js auszuführen. Bei der Eingabe von localhost: 4000 im Browser wird jedoch der gesamte Code von index.php im Browser angezeigt.

Node.js-Code

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-Code:

<?php

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

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

Also, bitte lassen Sie mich wissen, wie ich PHP-Code über node.js ausführen kann. Schlagen Sie mir eine Lösung vor.

Antworten:

3 für die Antwort № 1

Node.js kann PHP nicht sofort ausführen. Es ist kein PHP-Server und kann keinen PHP-Code analysieren. Möglicherweise können Sie ein JavaScript-PHP-Shim verwenden, das jedoch wahrscheinlich keine zuverlässige Leistung bietet.

Eine solche Option ist php.js, das ist eine JavaScript-PHP-VM, aber trotzdem empfehle ich dies nicht.

Meine uneingeschränkte Empfehlung ist, dass Sie Ihren Code in Node.js konvertieren, wenn Sie Node.js überhaupt verwenden. Ihr Code ist relativ einfach zu konvertieren fs API. Insbesondere die fs.readFile() Funktion, die Sie bereits zum Lesen der PHP-Datei verwenden.

Wenn Sie jede neue Zeile in einen HTML-Seitenumbruch konvertieren müssen, ist dies ebenfalls relativ trivial. Zuerst möchten Sie die Daten mithilfe von mit Hilfe von toString() Methode. Sie können auch Regex-Abgleich verwenden oder verwenden split() und join() Zeilenumbrüche in konvertieren </br>. Für dieses Beispiel verwende ich die split()/join() Methode.

Z.B.

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