Heim  >  Artikel  >  Backend-Entwicklung  >  Warum gibt PHP einen Teil des JS-Codes zurück?

Warum gibt PHP einen Teil des JS-Codes zurück?

WBOY
WBOYOriginal
2016-12-05 13:44:18887Durchsuche

Ich verstehe nicht, warum PHP einen JS-String zurückgibt? Zum Beispiel: echo '<script>window.location.href="/index.php/Admin/Login"</script>';

Antwortinhalt:

Ich verstehe nicht, warum PHP einen JS-String zurückgibt? Zum Beispiel: echo '<script>window.location.href="/index.php/Admin/Login"</script>';

JS kann nicht in PHP ausgeführt werden. JS kann nur ausgeführt werden, nachdem PHP in HTML analysiert wurde. Wenn Sie PHP zur Ausgabe von JS verwenden möchten, müssen Sie den JS-Code als PHP-String ausgeben.

Dies sollte für den Sprung auf die Seite nicht überraschend sein. Dies hängt von den spezifischen Anforderungen und Anwendungsszenarien ab. Zum Beispiel der folgende Code

Warum gibt PHP einen Teil des JS-Codes zurück?

(php) js wird nicht auf dem Server ausgeführt, sondern sollte auf dem Client ausgeführt werden.

php gibt nur die Zeichenfolge „<script></script>“ zurück und führt die darin enthaltenen Anweisungen nicht aus. Wenn Sie die Zeichenfolge im Browser anzeigen, wird sie automatisch kompiliert und ausgeführt Skript.

Sie können die Verwendung von file_get_contents($url);

in Betracht ziehen

Wird normalerweise in der Webseitenanfrage beurteilt, wenn kein Login-Sprung erfolgt

<code class="php">if(!$login){
// 和输出字符串没区别,只不过会被js执行
echo '<script>window.location.href="/index.php/Admin/Login"</script>';
}
</code>

Der Fragesteller möchte wahrscheinlich fragen, warum es nicht gesprungen ist, oder?

Ich bin mir nicht sicher, was die Frage bedeutet, ich empfehle Ihnen, sie zu lesen 提问的艺术...

php kann jeden Code zurückgeben, darüber gibt es nichts zu besprechen

Ein Praktikant, den ich zuvor unterrichtet habe, hat mich gefragt, warum PHP keine Ausnahmen an den Browser auslösen kann. Grundsätzlich verstehe ich nicht, wie eine Anfrage abgeschlossen wird und wie das Programm ausgeführt wird.

Lassen Sie mich versuchen zu erklären: Wenn Sie PHP zur Entwicklung auf der Serverseite verwenden, werden PHP-, HTML-, JS- und CSS-Codes oft zusammen geschrieben, insbesondere wenn PHP-Code mit den letzten drei gemischt wird (CSS ist weniger ). Tatsächlich werden diese Teile jedoch während der Ausführung unabhängig voneinander ausgeführt.

PHP kann nur auf der Serverseite ausgeführt werden. Nachdem die Anfrage gesendet wurde, führt der Server das PHP-Skript aus. Für den PHP-Interpreter kann er nur den Teil des Codes in der Mitte von . Nach diesem Teil des Codes werden die für die Anfrage erforderlichen Daten generiert. Manchmal handelt es sich bei den Daten um eine JSON-Zeichenfolge, und manchmal handelt es sich um eine Seite, die HTML-, JS- und CSS-Codes enthält.

Der von PHP generierte JS-Code wird zu diesem Zeitpunkt gemäß der Frage generiert. Für den PHP-Interpreter unterscheiden sich diese JS-Codes nicht von gewöhnlichen Zeichenfolgen.

Danach liest der Server die Daten aus dem PHP-Puffer (z. B. einer Seite mit HTML-, JS- und CSS-Code), verpackt die Daten und sendet sie an den Browser. Der Browser verfügt über integrierte Interpreter für HTML, JS und CSS, sodass der Browser HTML-, JS- und CSS-Codes ausführen kann. Da der Browser keinen PHP-Interpreter hat, kann er auch keinen PHP-Code ausführen. Der Fragesteller kann versuchen, lokal eine statische Seite zu schreiben, ein Stück PHP-Code darin zu schreiben und sie dann zur Beobachtung mit einem Browser zu öffnen.

Um es einfach auszudrücken: Auf der einen Seite der Wand befindet sich der Browser, der HTML, JS und CSS ausführen kann PHP; die beiden interagieren über das HTTP-Protokoll. Da der Browser PHP-Code nicht versteht, handelt es sich, selbst wenn Sie ihm einen Teil des PHP-Codes geben, nur um eine Ansammlung gewöhnlicher Zeichenfolgen. Auch für den Server unterscheiden sich die sogenannten HTML-, JS- und CSS-Codes nicht von „Hallo Welt“.

Sowohl JS als auch PHP können jede beliebige Form von Zeichenfolgen generieren, sodass sie Code in jeder Sprache generieren können.
Wenn es kein Programm zum Interpretieren und Ausführen gibt, besteht jeder Code nur aus einer Ansammlung von Zeichenfolgen.

Einige persönliche Meinungen, bitte korrigieren Sie mich.

Die Antwort finden Sie in der Antwort von @Qingquanyuexia unter der Antwort.

In der Ära des asp.net-Webformulars gab es einen Vorgang des „serverseitigen Registrierungsskripts für den Client“. Schließlich war das Frontend zu diesem Zeitpunkt noch nicht entstanden.

Sie sollten diese Frage in zwei Fragen aufteilen:

  1. Ich verstehe nicht, warum PHP einen Teil des HTML-Codes zurückgibt?

  2. Wenn Sie HTML nicht verstehen, warum fügen Sie dann einen Teil des JS-Codes ein?


Großer Fehler~

jsonp, eine Programmiermethode, die domänenübergreifend sein kann.

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