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

Warum muss swoole über die Kommandozeile gestartet werden?

(*-*)浩
(*-*)浩Original
2019-12-13 09:31:392448Durchsuche

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

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) 的内容将在这里输出

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

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!

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