ホームページ >バックエンド開発 >PHPチュートリアル >php が js コードを返すのはなぜですか?
なぜphpがjs文字列を返すのかわかりません。例: echo '<script>window.location.href="/index.php/Admin/Login"</script>';
なぜphpがjs文字列を返すのかわかりません。例: echo '<script>window.location.href="/index.php/Admin/Login"</script>';
JS は PHP では実行できません。JS は PHP が HTML に解析された後にのみ実行できます。 php を使用して js を出力したい場合は、js コードを php 文字列として出力する必要があります。
これはページにジャンプするためのものです。特定のニーズとアプリケーションのシナリオによって異なります。たとえば、次のコード
(php) js はサーバー上では実行されません。クライアント上で実行する必要があります。
php は文字列「<script></script>」をフロントデスクに返すだけで、その文字列をブラウザ上に表示すると、ブラウザは自動的にスクリプトをコンパイルして実行します。
file_get_contents($url); の使用を検討できます
通常、ログインジャンプがない場合はWebページリクエストで判断されます
リーリー
質問者さんは、なぜジャンプしなかったのかを聞きたいのではないでしょうか?
質問の意味がわからないので、読んでおくことをお勧めします提问的艺术
...
php は任意のコードを返すことができます。これについては議論する必要はありません
私が以前教えたインターンは、PHP がブラウザに例外をスローできないのはなぜかと尋ねましたが、ある女性の同僚は、PHP で JS の変数を取得して判断しようとしたことがあります。リクエストがどのように完了するか、プログラムがどのように実行されるか。
説明しましょう: PHP を使用してサーバー側で開発する場合、特に PHP コードが後の 3 つ (CSS が少ない) と混合される場合、PHP、HTML、JS、および CSS コードが一緒に記述されることがよくあります。しかし実際には、実行時にはこれらの部分は独立して実行されます。
PHP はサーバー側でのみ実行できます。リクエストが送信された後、サーバーは PHP スクリプトを実行します。PHP インタープリターの場合、
質問で尋ねられたようにPHPによって生成されるJSコードは、PHPインタープリターにとってはこの時点で生成されます。これらのJSコードは通常の文字列と何ら変わりません。
この後、サーバーは PHP バッファーからデータ (HTML、JS、CSS コードを含むページなど) を読み取り、データをパッケージ化してブラウザーに送信します。ブラウザには HTML、JS、および CSS のインタプリタが組み込まれているため、ブラウザは HTML、JS、および CSS コードを実行できます。同様に、ブラウザには PHP インタープリタがないため、ブラウザは PHP コードを実行できません。質問者は、ローカルで静的ページを作成し、その中に PHP コードを書き、それをブラウザで開いて観察してみることができます。
簡単に言うと、壁の一方が HTML、JS、CSS を実行できるブラウザであり、壁のもう一方が PHP を実行できるようなものです。 HTTP プロトコルを通じて対話します。ブラウザの場合、ブラウザは PHP コードを理解できないため、たとえ PHP コードを与えたとしても、それは単なる文字列の集まりにすぎません。同様に、サーバーの場合、いわゆる HTML、JS、CSS コードは「Hello, world」と何ら変わりません。
JS と PHP はどちらも任意の形式の文字列を生成できるため、任意の言語でコードを生成できます。
さらに言えば、解釈して実行するプログラムがなければ、コードは単なる文字列の集まりになります。
個人的な意見もありますので、修正を歓迎します。
答えは、回答の下にある@清春月下の回答をご覧ください。
asp.net Webフォーム時代には、結局のところ、当時はまだフロントエンドが登場していなかったので、「サーバーサイドの登録スクリプトをクライアントに送信する」という操作がありました。
この質問は 2 つの質問に分割する必要があります:
PHP が HTML コードを返す理由がわかりません。
なぜHTMLにjsコードが含まれているのかわかりません。
大間違い〜
jsonp、ドメインを越えることができるプログラミング手法