php如何跨域引入文件

PHP中文网
發布: 2023-03-14 14:58:01
原創
1656 人瀏覽過

我們要先明白一個概念,什麼是跨域?例如a.com下面的a.js檔案呼叫b.com中的b.js檔案是就發生了跨域行為。瀏覽器出於對同源策略的保護會限制這種行為,當然也有解決的方案,大家可以使用搜尋引擎搜尋。而今天我們講的php是伺服器端語言,它是區別於瀏覽器的,屬於後端語言。它的跨域引用文件是如何實現的呢,本文提供一些方法,希望對需要的同學有所幫助。

首先我們假設這兩台主機的後台語言都是php,大家可以選擇兩台線上的環境,或是1台線上1臺本地環境,或使用虛擬機器(這個不是我們今天重點內容,請自行解決)。分別在兩個環境中建立a.php,b.php,程式碼如下:

a.php:

<?php
echo &#39;我是老A,呼叫老B,听到请回答:<br>&#39;;
/* 以下是源服务器的代码*/
/* 以上是源服务器的代码*/
?>
登入後複製

b.php:

<?php
header("Content-type:text/html;charset=utf-8");
echo "我是老B,叫我干嘛????";?>
登入後複製

分別使用瀏覽器存取a.php,b.php查看未設定之前的效果:

方法一:開啟a. php,輸入以下程式碼:

<?php
echo &#39;我是老a,呼叫老b,请回答:<br>&#39;;
/* 以下是源服务器的代码*/
$file_path = "此处输入b.php的访问地址";
$str = file_get_contents($file_path);
$str = str_replace("\r\n","<br />",$str);
echo $str;
/* 以上是源服务器的代码*/
?>
登入後複製

重新造訪a.php,查看效果:

方法二:修改a.php,貼上以下程式碼:

<?php
echo &#39;我是老a,呼叫老b,请回答:<br>&#39;;
/* 以下是源服务器的代码*/
$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,查看效果:

#方法三:修改a.php ,貼上以下程式碼:

<?php
echo &#39;我是老a,呼叫老b,请回答:<br>&#39;;
/* 以下是源服务器的代码*/
$file_path = "此处输入b.php的访问地址";
$file_arr = file($file_path);
for($i=0;$i<count($file_arr);$i++){//逐行读取文件内容
echo $file_arr[$i]."<br />";
}
/* 以上是源服务器的代码*/
?>
登入後複製

方法四:修改a.php,調整下列程式碼:

<?php
echo &#39;我是老a,呼叫老b,请回答:<br>&#39;;
/* 以下是源服务器的代码*/
$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開啟了curl模組


#

以上是php如何跨域引入文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板