file_get_contents 在本地测试可以, 但在服务器上报错403

解决方法:

Most likely if you don‘t get any content while accessing an webpage, probably it doesn‘t want you to be able to get the content. So how does it identify that a script is trying to access the webpage, not a human? Generally, it is the User-Agent header in the HTTP request sent to the server.

So to make the website think that the script accessing the webpage is also a human you must change the User-Agent header during the request. Most web servers would likely allow your request if you set the User-Agent header to an value which is used by some common web browser.

A list of common user agents used by browsers are listed below:

Chrome: ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36‘

Firefox: ‘Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:10.0) Gecko/20100101 Firefox/10.0‘
$context = stream_context_create(
    array(
        "http" => array(
            "header" => "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
        )
    )
);

echo file_get_contents("www.google.com", false, $context);

1

原文地址:https://www.cnblogs.com/Skate0rDie/p/10658494.html

时间: 2024-10-20 06:17:18

file_get_contents 在本地测试可以, 但在服务器上报错403的相关文章

Afaira服务器上报错NDEF invalid "Operation" tag

iOS设备在Afaria服务器上注册Enroll成功,但是Windows event log里面有错误日志: The Network Device Enrollment Service received an http message without the "Operation" tag, or with an invalid "Operation" tag. 这个不影响Afaria政策工作,safely ignore it. 参考:http://solveiss

微信现金红包接口本地测试成功,服务器上失败后的解决办法

本地测试成功后,基本上确定代码还是可用的. 那么本地跟服务器就剩下配置上的区别了. 现金红包接口api 是需要带证书的.所以呢,iis配置有所不同. asp.net 4.0 + iis 8.0  配置环境 1 打开iis   点击 应用程序池 2 点击最右侧的  右上角   设置应用程序池默认设置 3 设置 里面的参数,把 加载用户配置文件 项  改为  true 重启下 iis  再试试  服务器上的接口是否变得正常了呢.

本地测试通过,服务器出现乱码

本地测试通过,服务器发布出现乱码 ,后面检查发现Http请求发送存在编码问题 改进了一下请求基类: using System; using System.Collections.Generic; using System.Web; using System.Text; using System.Net; using System.IO; using System.IO.Compression; using System.Text.RegularExpressions; namespace com

win7 windows server 2008R2下 https SSL证书安装的搭配(搭配https ssl本地测试环境)

原文:http://www.cnblogs.com/naniannayue/archive/2012/11/19/2776948.html 要想成功架设SSL安全站点关键要具备以下几个条件. 1.需要从可信的证书办法机构CA获取服务器证书. 2.必须在WEB服务器上安装服务器证书. 3.必须在WEB服务器上启用SSL功能. 4.客户端(浏览器端)必须同WEB服务器信任同一个证书认证机构,即需要安装CA证书. 下面,我们对照上面的四部,进行一步一步的操作 1:需要从可信的证书办法机构CA获取服务器

win10系统iis下部署https (ssl/tls)本地测试环境

有时想要把公司的某些XX项目部署成https站点,是为了在传输层加密传输,防止他人嗅探站点重要数据信息,平常我们使用的http方式都是明文方式传输的很不安全,容易被他人窃取.而有些时候要在本地搭建https环境用来测试,下面看具体在本地搭建https测试站点. 首先要去证书认证机构申请一个证书用来测试,认证机构很多,如              1.http://www.symantec.com/zh/cn/ 2.https://www.geotrust.com/  3.https://cn.g

本地上传文件到服务器,从服务器下载文件到本地

最近在做项目的时候涉及到了文件的上传.下载,以前学习IO时也没有搞得多清楚,在网上找了些上传下载的例子,然后修改了部分.经测试,上传下载文件暂时能用,下面是上传和下载的方法: 1.本地上传文件到服务器 html代码: <form id="uploadDatumInfo" name="uploadDatumInfo" method="post" enctype="multipart/form-data" target=&q

在本地测试一次成功的AJAX请求

要在本地测试AJAX,首先是环境的搭建,下面以wamp为例. 1.先在wamp的官网下载wamp的安装包,网址 http://www.wampserver.com/. 2.安装wamp.如果安装过程中提示丢失VCRUNTIME140.DLL缺失,请看这篇文章:http://www.jb51.net/article/81595.htm. 3.安装完wamp后,双击桌面上wamp的快捷方式启动wamp. 如果wamp正常启动,任务栏右下角有绿色的w图标,如图: 接下来是代码的编写. 在wamp安装目

如何本地测试例如QQ登录等第三方接口

前言:现在基本是个网站就会集成第三方的一些接口,比如QQ登录.分享等等.但是在开发的时候,尤其是没有这方面经验的开发人员来说,调试流程时会显得迷茫,不知道怎么调试.这里就个人的这方面学习摸索做一个总结. 如题,本篇只是总结 如何本地测试例如QQ登录等第三方接口. 特别说明:1.本文以集成QQ登录接口为例.2.因为是NET程序猿,所以以VS举例说明 关于如何成为QQ开发者,如何申请AppID以及AppKey,不再赘述!百度百科上都有了,还说什么呢!呵呵~ 关于如何集成,这个官网上都有各种SDK,而

搭建可调试的微信公众平台本地测试环境

背景: 最近在筹建一个协同开发的开源项目NWechat,项目开始前,有几样事情要准备. 1)项目管理系统的选定: 2)源码版本控制系统的选定: 3)开发环境的搭建. 4)团队的建设. 开发环境搭建便是项目启动前,要做的几件事情之一. 一.问题是这样的 在微信开发的时候,必须要输入URL,而该URL必须是外网域名. 这就造成了一个问题,我们在开发环境下不能测试代码,更谈不上调试代码了. 二.大家是这么做的 我问过一些开发者正在使用的方案: 1)搭建测试服务器. 在开发环境编码后,提交到测试服务器测