勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPでプロキシ経由で他サーバーに接続する方法(file_get_contents / curlの2パターン)

   2024/02/25  PHP

PHPでfile_get_contentsやcurlで他サーバに接続する際に自サーバのIPは隠したかった。かといって偽装するのも難しいとのこと。ただ、プロキシサーバーを経由することで対応可能。以下に対応方法をメモ。

 

file_get_contentsの場合

$url = 'http://hogehoge.com';
$option = array(
    'http' => array(
        'proxy' => 'tcp://プロキシIP:プロキシポート番号',
        'request_fulluri' => true,
    ),
);
$proxy = stream_context_create($option);
$result = file_get_contents($url, false, $proxy);

 

curlの場合

$url = 'http://hogehoge.com';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, 'http://プロキシIP':'プロキシポート番号');
$result = curl_exec($ch);

 

その他

「file_get_contents使用」「phpのエラー表示がON」「プロキシサーバでログイン認証の必要がある」の3つのケースが重なった場合にwarningエラーが出るので注意。

 - PHP

  関連記事

PHPで「ramsey/uuid」ライブラリを用いてUUIDを生成する方法
PHPで「ramsey/uuid」ライブラリを用いてUUIDを生成する方法

PHPでUUID(Universally Unique Identifier)を ...

AjaxのJSONP使用でPHPで作った配列をJSに返す方法
AjaxのJSONP使用でPHPで作った配列をJSに返す方法

AというサイトからBというサイトにAjax通信し、Bの方ではMySQLに接続して ...

PHPからRedisを利用する際のよく使う構文について
PHPからRedisを利用する際のよく使う構文について

PHPからRedisを利用する際のよく使う構文について以下にメモ。   ...

CodeIgniter4で特定のページにアクセスがあった際に301リダイレクトさせる方法
CodeIgniter4で特定のページにアクセスがあった際に301リダイレクトさせる方法

CodeIgniter4で特定のページにアクセスがあった際に301リダイレクトさ ...

Codeigniter3で外部ファイル(CSS / JS)の読み込みと共通パーツ化する方法
Codeigniter3で外部ファイル(CSS / JS)の読み込みと共通パーツ化する方法

CodeigniterでCSSやJSファイル等の外部ファイル読み込みたかった。ま ...