勉強したことのメモ

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で簡単にカレンダーを生成できるライブラリ「PHP Calendar」の利用方法
PHPで簡単にカレンダーを生成できるライブラリ「PHP Calendar」の利用方法

PHPでカレンダーを描写したいということがたまにある。今までバニラPHPで書いて ...

PHP8系で「Warning: Attempt to read property
PHP8系で「Warning: Attempt to read property "xxxxxx" 」エラーの対応方法

PHP8系&WordPress6.4.3で「Warning: Attem ...

jQueryからAjax経由でPHPにリクエストしCookieを操作する方法
jQueryからAjax経由でPHPにリクエストしCookieを操作する方法

先日PHPでCookie保存時にHttpOnly / Secure属性を設定する ...

PHPでHTMLメールを送信する方法(PHPMailerあり無しの2パターン)
PHPでHTMLメールを送信する方法(PHPMailerあり無しの2パターン)

PHPでHTMLメールを送信したい。また、メール関連の機能を実装する際は環境によ ...

Ajaxでデータを受信した際にリファラのチェックをしたい
Ajaxでデータを受信した際にリファラのチェックをしたい

Ajaxでデータを受信し、MySQLにINSERTするプログラムがあった。そこま ...