如何使用php代理将网站加载到iframe中? [英] How to use a php proxy to load a site into a iframe?

查看:116
本文介绍了如何使用php代理将网站加载到iframe中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试将我在URL中设置的随机页面加载到iframe中.假设我尝试在iframe中加载" https://www.google.de ".

<iframe src="<?php echo $_GET['URL'];?>" width="600" height="500"></iframe>

这是我设置网址的方式:

localhost/test/index.php?URL=https://www.google.de

仅加载空白页.我知道原因是Google正在发送"X-Frame-Options:SAMEORIGIN"响应标头.

但是,无论如何,我试图找到一种加载方法,有人告诉我使用PHP代理脚本来执行此操作,但是我进行了研究,发现仍然没有任何帮助.

我该如何解决?

解决方案

如果您在任何代理服务器后面,并希望使用身份验证绕过代理URL,域,用户名,密码,请使用此脚本取消注释代理行. /p>

我使用了header("Access-Control-Allow-Origin: *");,因为我是从其他域调用此脚本的.

文件:proxyscript.php

<?php
    header("Access-Control-Allow-Origin: *");

    echo get_page($_GET['url']);
    //echo get_page("http://www.google.com");
    function get_page($url){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$url);
        /*
        $proxy = 'http://proxy.company.com:8080';
        $proxyauth = 'domain\proxy_username:proxy_password';
        curl_setopt($ch, CURLOPT_PROXY, $proxy);
        curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);
        */
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }
?>

文件:index.html

<html>
    <head>
        <script>
            function getURL(url){
                document.getElementById('frame').src 
                   = 'path/to/proxyscript.php?url='+encodeURIComponent(url);
            }
        </script>
    </head>
    <body>
        <button onclick="getURL( 'http://www.google.com')">Google</button>
        <iframe id="frame" src=""></iframe>
    </body>
</html> 

I try to load a random page which I set in my URL, into an iframe. Let's say I try to load "https://www.google.de" in an iframe.

<iframe src="<?php echo $_GET['URL'];?>" width="600" height="500"></iframe>

This is how I set the URL:

localhost/test/index.php?URL=https://www.google.de

Only a blank page is loaded. I know the reason for this is that Google is sending an "X-Frame-Options: SAMEORIGIN" response header.

However, I try to find a way to load it anyway, someone told me to use a PHP Proxy script to do this, but I researched and found nothing helpful yet.

How can I solve this?

解决方案

Use this script uncomment the proxy lines if you are behind any proxy server and want to bypass it using the authentication the proxy url, domain, username, password.

I used header("Access-Control-Allow-Origin: *"); Since I was calling this script from a different domain.

File: proxyscript.php

<?php
    header("Access-Control-Allow-Origin: *");

    echo get_page($_GET['url']);
    //echo get_page("http://www.google.com");
    function get_page($url){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$url);
        /*
        $proxy = 'http://proxy.company.com:8080';
        $proxyauth = 'domain\proxy_username:proxy_password';
        curl_setopt($ch, CURLOPT_PROXY, $proxy);
        curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);
        */
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }
?>

File: index.html

<html>
    <head>
        <script>
            function getURL(url){
                document.getElementById('frame').src 
                   = 'path/to/proxyscript.php?url='+encodeURIComponent(url);
            }
        </script>
    </head>
    <body>
        <button onclick="getURL( 'http://www.google.com')">Google</button>
        <iframe id="frame" src=""></iframe>
    </body>
</html> 

这篇关于如何使用php代理将网站加载到iframe中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆