在我的页面中显示另一个站点并更改我的所有链接(如代理)

时间:2014-04-26 11:44:33

标签: php proxy web

我想像代理页(根本不是代理),因为我知道我需要更改所有网址 SRC LINK 等等给其他人 - 从正确播放中获取样式和图片,并在我的页面转到 $ _ GET [“url”] 然后给我下一页。

但是iv与preg_replace()每个元素绑定,也不是很好,如果在一个网站上它可以工作,另一个我不能看到 CSS 例如... < / p>

第一个问题是,是否有 PHP 或仅脚本可以轻松实现? (我试图谷歌时间)

如果没有帮助我使用以下代码:

<?php
$url = $_GET["url"];
$text = file_get_contents($url);
$data = parse_url($url);
$url=$data['scheme'].'://'.$data['host'];
$text = preg_replace('|<iframe [^>]*[^>]*|', '', $text);
$text = preg_replace('/<a(.*?)href="([^"]*)"(.*?)>/','<a $1 href="http://my.site/?url='.$url.'$2" $3>',$text);
$text = preg_replace('/<link(.*?)href="(?!http:\/\/)([^"]+)"(.*?)/', "<link $1 href=\"".$url."/\\2\"$3", $text);
$text = preg_replace('/src="(?!http:\/\/)([^"]+)"/', "src=\"".$url."/\\1\"", $text);
$text = preg_replace('/background:url\(([^"]*)\)/',"background:url(".$url."$1)", $text);
echo $text;
?>

替换为“src” №4我需要拒绝替换从双斜杠开始时,因为它可以像一样启动'src =“// somethingdomain”',不需要替换它们。

当href转到同一个域时,我还需要忽略替换№2,或者它看起来像 need.site/news.need.site / 324244

是否有可能通过我的脚本以形式传递动作?例如谷歌搜索查询。

一个网站开放的一个小问题之前已经开过一段时间了,但是经过这个脚本iv打开了数百次以获取未知符号(没有任何div身体等...) S n @ 我试图编码为UTF-8 ANSI但符号只是改变,

也许他们禁止我? OO

2 个答案:

答案 0 :(得分:1)

function link_replace($url,$myurl) {

    $content = file_get_contents($url);
    $content = preg_replace('#href="(http)(.*?)"#is', 'href="'.$myurl.'?url=$1$2"', $content);  
    $content = preg_replace('#href="([^http])(.*?)"#is', 'href="'.$myurl.'?url='.$url.'$1$2"', $content);

    return $content;
}

echo link_replace($url,$myurl);

答案 1 :(得分:1)

我不是很确定,但我猜结果只是压缩,例如使用gzip尝试在代理请求时删除接受的编码头。