【问题标题】:file_get_contents in PHP to get a local asp file's renderPHP 中的 file_get_contents 获取本地 asp 文件的渲染
【发布时间】:2013-03-18 07:35:13
【问题描述】:

我有一个运行在 Windows Server 2003 中的服务器,它托管一个 ASP 网站。我有一个 PHP 函数试图从属于该服务器的 URL 中使用 file_get_contents。问题是 ASP URL 和 PHP 函数属于同一个服务器。我会更好地解释它:

我的网站 www.myweb.com 托管在我的服务器中。

文件www.myweb.com/phpfile.php 需要从文件www.myweb.com/aspfile.asp 中获取file_get_contents 的内容。如果我从外部服务器运行phpfile.php 它可以工作,但如果我从我的服务器运行它会失败。

我很确定问题在于这两个文件都属于同一个本地主机,所以当我尝试获取 aspfile.asp 内容时,它会跳过 Web 服务器并且不会获取呈现的内容。 我的问题是:我该如何解决?如何准确地告诉服务器查找呈现的内容,而不是在本地主机中查找?

【问题讨论】:

  • 尝试使用相对路径而不是包括域在内的整个路径。另外,请显示您的代码和您收到的确切错误消息。

标签: php asp-classic windows-server-2003 file-get-contents


【解决方案1】:

您必须从您的服务器获取一个 HTTP URL。否则,直接访问 ASP 文件时,不会触发 ASP 渲染,因为会从文件中读取实际的源代码。

需要检查您的服务器是否设置为接受与自身的连接。通常这不是问题。

【讨论】:

  • 感谢您的快速回复。我明白了。但是怎么做?我将整个 url 与域一起使用:file_get_contents('https:\\www.myweb.com/aspfile.asp')。我该如何发送请求?
【解决方案2】:

我刚刚在我的开发服务器上尝试了以下方法,它似乎可以工作

<?php 
$url = 'http://localhost/mydirectory/myaspfile.asp';
$string = file_get_contents($url);
print $string
?>

我的 php 和 asp 文件在同一个目录下。您是否有可能有防火墙阻止您的 php 安装进行传出连接?

如果有人感兴趣,这里是如何在 asp 中做同样的事情。

<% 
url = "http://localhost/mydirectory/myaspfile.asp" 
set xmlhttp = server.CreateObject("Msxml2.ServerXMLHTTP.6.0") 
xmlhttp.open "GET", url, false 
xmlhttp.send "" 
Response.write xmlhttp.responseText 
set xmlhttp = nothing 
%>

【讨论】:

  • 非常感谢您的关注。我有点解决了。问题是它不是我的服务器,而是我客户的。也许是防火墙或路由器的任何问题,或者当我将服务器的本地 ip 添加到主机文件时它起作用了..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-23
  • 2011-02-17
  • 2016-03-11
  • 2021-11-04
  • 1970-01-01
相关资源
最近更新 更多