首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从外部服务器获取页面

问从外部服务器获取页面
EN

Stack Overflow用户
提问于 2009-07-07 19:22:53
回答 3查看 14.7K关注 0票数 3

我想把一个字符串传递给一个函数,这个字符串把它连接到url上。然后转到该url,然后将页面返回到我的服务器,这样我就可以使用JS操作它。

任何想法都将不胜感激。

干杯。

EN

回答 3

Stack Overflow用户

发布于 2009-07-07 19:27:47

如果启用了fopen_wrappers,则可以使用file_get_contents()检索页面,然后在将其作为输出回显之前将JavaScript插入到内容中。

代码语言:javascript
复制
$content = file_get_contents('http://example.com/page.html');
if( $content !== FALSE ) {
  // add your JS into $content
  echo $content;
}

这当然不会影响原始页面。

票数 9
EN

Stack Overflow用户

发布于 2009-07-07 19:27:37

您应该能够使用fopen()实现您想要的功能。它可以接受URL。

代码语言:javascript
复制
echo "<script type='text/javascript' src='myjavascript.js'></script>";
$handle = @fopen("http://www.example.com/", "r");
if ($handle) {
    while (!feof($handle)) {
        $buffer = fgets($handle, 4096);
        echo $buffer;
    }
    fclose($handle);
}
票数 0
EN

Stack Overflow用户

发布于 2009-07-07 19:31:31

使用CURL可能是最简单的,但我更喜欢自己做一些事情。这将连接到给定的地址并返回页面的内容。不过,它也会返回头部,所以要注意这一点:

代码语言:javascript
复制
function do_request ($host, $path, $data, $request, $specialHeaders=null, $type="application/x-www-form-urlencoded", $protocol="", $port="80")
{
        $contentlen = strlen($data);
        $req = "$request $path HTTP/1.1\r\nHost: $host\r\nContent-Type: $type\r\nContent-Length: $contentlen\r\n";
        if (is_array($specialHeaders))
        {
            foreach($specialHeaders as $header)
            {
                $req.=$header;
            }
        }
        $req.="Connection: close\r\n\r\n";
        if ($data != null) {
            $req.=$data;
        }
        $fp = fsockopen($protocol.$host, $port, $errno, $errstr);
        if (!$fp) {
            throw new Exception($errstr);
        }
        fputs($fp, $req);
        $buf = "";
        if (!feof($fp)) {
            $buf = @fgets($fp);
        }
        return $buf;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1094274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档