勉強したことのメモ

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でCookie保存時にSameSite属性を設定する方法
PHPでCookie保存時にSameSite属性を設定する方法

あるシステムのセキュリティ対策としてCookie保存時にSameSite属性をS ...

画像をアップロードすると複数サムネイルを生成する方法
画像をアップロードすると複数サムネイルを生成する方法

フォームで画像をアップロードすると、予め定めておいた大中小のサイズでサムネイル画 ...

PHPのHTTPクライアント用ライブラリ「Guzzle」の利用方法
PHPのHTTPクライアント用ライブラリ「Guzzle」の利用方法

以前に「Requests for PHP」を試したが、似たようなライブラリで「G ...

ディレクトリに設置してあるフォルダをPHPで調べて表示
ディレクトリに設置してあるフォルダをPHPで調べて表示

やりたい事はsampleというディレクトリがあったとして、その直下にあるフォルダ ...

Laravel 13系でGET / POSTパラメータを受け取って出力する方法
Laravel 13系でGET / POSTパラメータを受け取って出力する方法

Laravel 13系でフォームから送信したGET / POSTパラメータを受け ...