首页  >  文章  >  后端开发  >  php如何跨域引入文件

php如何跨域引入文件

PHP中文网
PHP中文网原创
2017-07-29 18:19:071643浏览

我们需要先明白一个概念,什么是跨域?比如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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn