ここで私はカールを使用してPHPでこれを処理しました。それはカールの外に依存関係がなくても簡単です。
Exchange 2013サーバーに対してテストされています。直接ファイルに保存します。
$server = ''; // owa.whatever.com, etc.
$user = ''; // username without domain info
$password = '';
$email_to_get = ''; // Email to pull photo
$fullurl = "https://$server/ews/Exchange.asmx/s/GetUserPhoto?email=$email_to_get&size=HR648x648"; //sizes defined at https://msdn.microsoft.com/en-us/library/jj194329(v=exchg.80).aspx
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $fullurl);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM | CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$user:$password");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$returned = curl_exec($ch);
$fp = fopen("pic.jpg", 'w'); // Save picture locally to .jpg
fwrite($fp, $returned);
fclose($fp);
header('Content-type: image/jpeg');
echo $returned; // Display the image on the page if desired
こんにちはグレッグ。素晴らしいスクリプトですが、私は質問があります - あなたのスクリプトはここで写真を開くか、または変数から写真を抽出する必要がありますか? $ server = "bagira.bam.loc"、$ user = "user"、$ password = "password"、$ email_to_get = "[email protected]"(初めに2つのセミコロンを追加した)しかし何も起こっていない(スクリプトには何のエラーもありません)スクリプトには何かがありますが、私は理解できません:)。 –
ああ、私は私の情報を削除したときにいくつかのセミコロンを見落としました。私はポストでそれを修正します。 –
Oleg、画像データは返された$で返されます - そのため、私はfwriteでファイルに書き込みます。あなたがprint_r($返された)をするならば。ウェブページ自体に行くとバイナリデータが表示されます(最初の数エントリではJPG用のJFIFが必要です)。 wはファイルを上書き/作成し、xはファイルを作成するだけなので、xの代わりにwを使うようにfopenを変更しました。 –