まず概念を理解する必要があります。クロスドメインとは何ですか?たとえば、a.com の a.js ファイルが b.com の b.js ファイルを呼び出すと、クロスドメイン動作が発生します。ブラウザーは同一生成元ポリシーの保護によりこの動作を制限します。もちろん、検索エンジンを使用して検索することもできます。今日話している PHP はサーバーサイド言語であり、ブラウザーとは異なり、バックエンド言語に属します。クロスドメイン参照ファイルはどのように実装されていますか? この記事では、困っている学生に役立つことを願って、いくつかの方法を紹介します。
まず、これら 2 つのホストのバックグラウンド言語は PHP であると仮定します。2 つのオンライン環境、または 1 つのオンライン環境と 1 つのローカル環境を選択するか、仮想マシンを使用することができます (これは今日の焦点ではありません)。 )の内容については、ご自身で解決してください)。 2 つの環境にそれぞれ a.php と b.php を作成します。 コードは次のとおりです。
a.php:
<?php echo '我是老A,呼叫老B,听到请回答:<br>'; /* 以下是源服务器的代码*/ /* 以上是源服务器的代码*/ ?>
b.php:
<?php header("Content-type:text/html;charset=utf-8"); echo "我是老B,叫我干嘛????";?>
ブラウザを使用して a.php と b にアクセスします。それぞれ php を実行して、設定せずに前の効果を表示します:
方法 1: a.php を開き、次のコードを入力します:
<?php echo '我是老a,呼叫老b,请回答:<br>'; /* 以下是源服务器的代码*/ $file_path = "此处输入b.php的访问地址"; $str = file_get_contents($file_path); $str = str_replace("\r\n","<br />",$str); echo $str; /* 以上是源服务器的代码*/ ?>
a.php に再度アクセスして、効果を確認します:
方法 2: a.php を変更し、次のコードを貼り付けます:
<?php echo '我是老a,呼叫老b,请回答:<br>'; /* 以下是源服务器的代码*/ $file_path = "此处输入b.php的访问地址"; $fp = fopen($file_path,"r"); $str = ""; $buffer = 1024; while(!feof($fp)){ $str .= fread($fp,$buffer); } $str = str_replace("\r\n","<br />",$str); echo $str; /* 以上是源服务器的代码*/ ?>
a.php に戻って効果を確認します:
方法 3: a.php を変更し、次のコードを貼り付けます:
<?php echo '我是老a,呼叫老b,请回答:<br>'; /* 以下是源服务器的代码*/ $file_path = "此处输入b.php的访问地址"; $file_arr = file($file_path); for($i=0;$i<count($file_arr);$i++){//逐行读取文件内容 echo $file_arr[$i]."<br />"; } /* 以上是源服务器的代码*/ ?>
方法 4 : a.php を変更し、次のコードを調整します:
<?php echo '我是老a,呼叫老b,请回答:<br>'; /* 以下是源服务器的代码*/ $url = "此处输入b.php的访问地址"; $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout) $contents = curl_exec($ch); curl_close($ch); echo $contents; /* 以上是源服务器的代码*/ ?>
注:curl を使用する場合は、php
以上がPHPでドメインを越えてファイルをインポートする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。