php中跨域引入文件的方法

  

我们需要先明白一个概念,什么是跨域?比如a.com下面的a.js文件调用b.com中的b.js文件是就发生了跨域行为。浏览器出于对同源策略的保护会限制这种行为,当然也有解决的方案,大家可以使用搜索引擎搜索。而今天我们讲的php是服务器端语言,它是区别于浏览器的,属于后端语言。它的跨域引用文件是如何实现的呢,本文提供一些方法,希望对需要的同学有所帮助。
首先我们假设这两台主机的后台语言都是php,大家可以选择两台线上的环境,或者1台线上1台本地环境,或者使用虚拟机(这个不是我们今天重点内容,请自行解决)。分别在两个环境创建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查看未设置之前的效果:

方法一:打开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,查看效果:

方法二:修改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,查看效果:

方法三:修改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 />";

}

/* 以上是源服务器的代码*/

?>

方法四:修改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开启了curl模块

猜你喜欢

转载自www.cnblogs.com/mo3408/p/9878273.html