Heim > PHP-Framework > Swoole > Warum muss swoole über die Kommandozeile gestartet werden?

Warum muss swoole über die Kommandozeile gestartet werden?

(*-*)浩
Freigeben: 2019-12-13 09:31:39
Original
2550 Leute haben es durchsucht

Warum muss swoole über die Kommandozeile gestartet werden?

swoole: Die Coroutine-Hochleistungs-Netzwerkkommunikations-Engine von PHP verwendet vollständig synchronen Code, um asynchrone Programme zu implementieren. Es ist nicht erforderlich, dem PHP-Code zusätzliche Schlüsselwörter hinzuzufügen. Die unterste Ebene führt automatisch eine Coroutine-Planung durch, um asynchrone E/A zu implementieren.

Der auf Swoole basierende Server sollte im Befehlszeilenmodus ausgeführt werden, um sicherzustellen, dass es nur eine Instanz gibt (der Port kann nicht wiederholt geöffnet werden)

Wir verwenden Swoole, um Erstellen Sie eins (Empfohlenes Lernen: Swoole-Video-Tutorial )

<?php
$http = new swoole_http_server(&#39;0.0.0.0&#39;, 80, SWOOLE_BASE);
$http->on(&#39;request&#39;, function(swoole_http_request $req, swoole_http_response $res) use($http) {
    $res->write("hello world");
    $res->end();
});
Nach dem Login kopieren

OK, Sie sehen, es ist nicht auf Frameworks/ob_flush und andere Mechanismen angewiesen, Swoole kann Echo nicht mehr als Ausgabemethode verwenden , müssen Sie $res ->write(String $content) und $res->end(String $endContent) verwenden.

Wie greifen wir also darauf zu?

Befehlszeilenstart

php app.php
# 你在代码里面 echo/var_dump/print(_r) 的内容将在这里输出
Nach dem Login kopieren

Dann öffnen Sie http://localhost/ im Browser und Sie können die Ausgabe von hello world erhalten.

Aber haben Sie es gefunden http:/ /localhost/ und http://localhost/ xxx geben alle den gleichen Inhalt aus.

Wenn wir möchten, dass PHP nur unter http://localhost/ ausgegeben wird, wie schreibt man das?

<?php
$http = new swoole_http_server(&#39;0.0.0.0&#39;, 80, SWOOLE_BASE);
$http->on(&#39;request&#39;, function(swoole_http_request $req, swoole_http_response $res) use($http) {
    if($req->server[&#39;request_uri&#39;] == &#39;/&#39;){
        $res->write("hello world");
        $res->end();
        return;
    }
    $res->end(&#39;404&#39;);
    return;
});
Nach dem Login kopieren

Swoole_http_request $req enthält viele Informationen, die wir in Zukunft verwenden können, um empfangene Daten anzufordern, einschließlich $req->get, $req->post, Array-Struktur, ->server's KEY ist Kleinbuchstabe

Das obige ist der detaillierte Inhalt vonWarum muss swoole über die Kommandozeile gestartet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage