Php 基于网络连接使用HTTP基本授权获取文件内容

Php 基于网络连接使用HTTP基本授权获取文件内容,php,file-get-contents,basic-authentication,http-authentication,Php,File Get Contents,Basic Authentication,Http Authentication,我正在使用带有HTTP基本授权的文件_get_contents()从我的$url获取内容: $url = "http://example.com"; $cred = sprintf('Authorization: Basic %s', base64_encode('username:password')); $opts = array( 'http' => array( 'method' => 'GET', 'header' => $cr

我正在使用带有HTTP基本授权的文件_get_contents()从我的
$url
获取内容:

$url = "http://example.com";
$cred = sprintf('Authorization: Basic %s', base64_encode('username:password'));
$opts = array(
    'http' => array(
        'method' => 'GET',
        'header' => $cred
    )
);
$ctx = stream_context_create($opts);
$data = file_get_contents($url, false, $ctx);
当我的代码中有正确的用户名和密码时,无论我连接到哪个网络连接,我都可以很好地从url获取内容

但是,我想让它基于网络连接。例如,如果我连接到我的局域网,它可以从url获取内容,而无需询问用户名和密码,但如果我连接到任何其他网络连接,则应要求用户输入用户名和密码

如果我没有弄错的话,我需要用PHP使用
HTTP身份验证
,但是我不知道如何将其集成到我的代码中,并使其基于网络连接执行,但并不总是这样


如果有人能在这件事上帮助我,我将不胜感激

主要问题是检测您连接的网络。您必须运行
ipconfig
ifconfig
,甚至可能运行
route
命令来检查/解析您所连接的网络。如果您已经解决了这个问题,您可以使用一个简单的
If()
语句来包含用户名/密码。

主要问题是检测您连接的网络。您必须运行
ipconfig
ifconfig
,甚至可能运行
route
命令来检查/解析您所连接的网络。如果您已经解决了这个问题,您可以使用一个简单的
If()
语句来包含用户名/密码