php如何跨域引入文件
的有关信息介绍如下:首先我们需要先明白一个概念,什么是跨域?比如a.com下面的a.js文件调用b.com中的b.js文件是就发生了跨域行为。浏览器出于对同源策略的保护会限制这种行为,当然也有解决的方案,大家可以使用搜索引擎搜索。而今天我们讲的php是服务器端语言,它是区别于浏览器的,属于后端语言。它的跨域引用文件是如何实现的呢,本文提供一些方法,希望对需要的同学有所帮助。
首先我们假设这两台主机的后台语言都是php,大家可以选择两台线上的环境,或者1台线上1台本地环境,或者使用虚拟机(这个不是我们今天重点内容,请自行解决)。分别在两个环境创建a.php,b.php,代码如下:
a.php:
echo '我是老A,呼叫老B,听到请回答:
';
/* 以下是源服务器的代码*/
/* 以上是源服务器的代码*/
?>
b.php:
header("Content-type:text/html;charset=utf-8");
echo "我是老B,叫我干嘛????";?>
分别使用浏览器访问a.php,b.php查看未设置之前的效果:
方法一:打开a.php,输入以下代码:
echo '我是老a,呼叫老b,请回答:
';
/* 以下是源服务器的代码*/
$file_path = "此处输入b.php的访问地址";
$str = file_get_contents($file_path);
$str = str_replace("\r\n","
",$str);
echo $str;
/* 以上是源服务器的代码*/
?>
重新访问a.php,查看效果:
方法二:修改a.php,粘贴以下代码:
echo '我是老a,呼叫老b,请回答:
';
/* 以下是源服务器的代码*/
$file_path = "此处输入b.php的访问地址";
$fp = fopen($file_path,"r");
$str = "";
$buffer = 1024;
while(!feof($fp)){
$str .= fread($fp,$buffer);
}
$str = str_replace("\r\n","
",$str);
echo $str;
/* 以上是源服务器的代码*/
?>
重新访问a.php,查看效果:
方法三:修改a.php ,粘贴以下代码:
echo '我是老a,呼叫老b,请回答:
';
/* 以下是源服务器的代码*/
$file_path = "此处输入b.php的访问地址";
$file_arr = file($file_path);
for($i=0;$i echo $file_arr[$i]." } /* 以上是源服务器的代码*/ ?> 方法四:修改a.php,调整如下代码: echo '我是老a,呼叫老b,请回答: /* 以下是源服务器的代码*/ $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; /* 以上是源服务器的代码*/ ?>
";
';