php跨域有那些方法,PHP跨域访问的3种方法

近来项目中遇到跨服务器访问的问题,研究了好些日子,总结如下:

1、用file_get_contents方法$host = 'url';

$randomNumber=file_get_contents($host);

echo $$randomNumber;

2、用Curl$host = 'url';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $host);

// 返回结果

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HEADER, 0);

// 使用POST提交

curl_setopt($ch, CURLOPT_POST, 1);

// POST参数

$str = array('a=1','b=2','c=3');

curl_setopt($ch, CURLOPT_POSTFIELDS, $str);

// 结果

$res = curl_exec($ch);

curl_close($ch);

使用curl库,使用curl库之前,你可能需要查看一下php.ini,查看是否已经打开了curl扩展

3、 用fopen打开url, 以get方式获取内容<?php

$url="http://www.dnjs.net/";

$fp=fopen($url,'r');

while(!feof($fp)){

$result.=fgets($fp,1024);

}

echo" $result";

fclose($fp);

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要解决文件下载时的跨域问题,可以在服务器端设置跨域资源共享(CORS)头部。具体步骤如下: 1. 在服务器端的 PHP 脚本中,设置响应头部,允许指定的域名跨域访问该资源。例如,以下代码表示允许来自 example.com 域名的请求跨域访问该资源: ```php header('Access-Control-Allow-Origin: example.com'); ``` 2. 如果需要允许多个域名跨域访问该资源,可以使用通配符 `*`,例如: ```php header('Access-Control-Allow-Origin: *'); ``` 但是使用通配符可能会存在安全风险,因为它允许任何域名都可以跨域访问该资源,所以建议仅允许指定的域名访问。 3. 如果需要允许跨域请求发送自定义请求头部,可以使用 `Access-Control-Allow-Headers` 字段,例如: ```php header('Access-Control-Allow-Headers: Authorization, X-Requested-With'); ``` 上述代码表示允许跨域请求发送 `Authorization` 和 `X-Requested-With` 两个自定义请求头部。 4. 如果需要允许跨域请求发送不同的 HTTP 方法,可以使用 `Access-Control-Allow-Methods` 字段,例如: ```php header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); ``` 上述代码表示允许跨域请求发送 `GET`、`POST`、`PUT` 和 `DELETE` 四 HTTP 方法。 需要注意的是,以上代码需要放在文件下载的 PHP 脚本的开头部分,确保在下载文件之前设置响应头部。此外,还需要确保 PHP 脚本没有其他输出,否则会导致设置响应头部失败。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值