勉強したことのメモ.

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

  関連記事

Composer無し&ファイル1枚でPHPのエラーメッセージ画面をリッチにするライブラリ「PHP Error」の利用方法
Composer無し&ファイル1枚でPHPのエラーメッセージ画面をリッチにするライブラリ「PHP Error」の利用方法

先日PHPのエラーメッセージを見やすくするwhoopsの利用方法をメモしたが導入 ...

GoogleスプレッドシートとPHPを連携させデータを取得・追記する方法
GoogleスプレッドシートとPHPを連携させデータを取得・追記する方法

GoogleスプレッドシートとPHPプログラムを連携させたいという案件をたまに見 ...

他所のサーバからWordPressの記事情報をpostIDを指定して取得する方法
他所のサーバからWordPressの記事情報をpostIDを指定して取得する方法

他所のサーバからWPの記事IDを指定した上で、当該IDのタイトル・アイキャッチ画 ...

地理院のジオコーディングAPIをPHPからリクエストする方法
地理院のジオコーディングAPIをPHPからリクエストする方法

以前に地理院のジオコーディングAPIをjavascriptからajaxでリクエス ...

PHPで「operator not supported for strings」エラーの対応方法
PHPで「operator not supported for strings」エラーの対応方法

PHPにて「Fatal error: [] operator not suppo ...