2

私は現在このプラグインhttp://wordpress.org/extend/plugins/repress/を使用しています。これにより、基本的に私のWebサイトがプロキシになり、ユーザーはこのような検閲されたWebサイトにアクセスできるようになります。

www.mywebsite.com/proxy/www.cnn.com 

プラグインは十分に機能しますが、絶対リンクに関しては、プラグインはそれを適切に解析せず、リンクは引き続きブロックされます。そのプラグインの開発は停止しました。だから私は自分のスクリプトを書く必要があります。私はどこでも検索し、見つけることができるチュートリアルを読んでいますが、これに関して特に役立つものはありません。

php curlを使用してWebサイトを取得し、空白のページにエコーする方法を知っています。私が知らないのは、ユーザーが入力できる上記の例のように動作するようにプロキシスクリプトを設定する方法です

www.mywebsite.com 

に続く

/proxy.php 

その後、彼らのターゲットウェブサイト

/www.cnn.com

現在、私はこれを設定しています:

<?php
$url = 'http://www.cnn.com';
$proxy_port = 80;
$proxy = '92.105.140.115';
$timeout = 0;
$referer = 'http://www.mydomain.com'


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_PROXYPORT, $proxy_port);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYTYPE, 'HTTP');
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);*/
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);       
curl_setopt($ch, CURLOPT_REFERER, $referer);

$data = curl_exec($ch);
curl_close($ch);
echo $data; 
?>

これによりホームページがプルされますが、cssまたは画像は取得されません。同様に、すべての相対リンクが壊れています。proxy_port変数とproxy変数を適用する方法がわかりません。私は試した

92.105.140.115:80/www.cnn.com 

しかし、それは機能しません。サンプルサイトで見つけたので、このコードも完全には理解していません。

チュートリアルへの回答やリンクは大歓迎です。

ありがとう!

4

2 に答える 2

5

完全に機能するプロキシを持つことはそれほど簡単ではありません。そのようなプロジェクトはすでにたくさんあります。ショットを与える:

楽しむ!

于 2013-02-08T09:52:38.127 に答える
0

ブラウザがURIを正しく解釈しないため、curlのフェッチWebサイトの結果をページにエコーすることはできません。ユーザーがリンクをクリックすると、元のサイトではなくプロキシサイトに移動する必要があります。エコーで印刷するだけで、ユーザーに印刷する前に、フェッチしたページのすべてのリンクを手動で編集する必要があります。phpenp.listascuba.comによって作成された完全な機能プロキシがあります。試してはいけません。

詳細については私に連絡してください

于 2013-12-11T16:22:12.100 に答える