« [SWX] XMLを読み込んでFlash変数に変換するソース | メイン | Adobe Max 2007 11/1 (1) »

2007年11月01日

●[SWX] SWXで返したデータを静的にコピー

SWXで返したデータを静的にコピーやってみました。案外スッキリ出来ました。fopenがURLを叩けるので帰ってきたものを書き写すだけでした。

より堅くやるなら入力エラーチェックが必要だと思いますが、そう書くと長くなるので今回はコアなコードだけのっけておきます。僕のスキルではPHPでの完璧なエラーチェックはそう簡単には出来ないでしょうし。

以下がソースコードです。


<?php

// 初期設定 SWXゲートウェイ
define( 'SWX_GATEWAY_URL' , 'http://www.yourserver.jp/swx/swx.php' );

// 初期設定 許可ドメイン
// 本来実行ドメインが望ましいがローカルでのテストのときに読めなくなる。
// デバッグ中は「*」でもいいかも。
define( 'SWX_ALLOW_DOMAIN' , '*' );

// 初期設定 デバックモード
define( 'SWX_DEBUG' , 'true' );

// 初期設定 コピーするディレクトリ
// パーミッションを707で開放する必要がある。
define( 'SWX_COPY_DIR' , 'copy' );

// SWX URL
$swx_url = "";
$swx_url .= SWX_GATEWAY_URL . '?';
$swx_url .= "url=" . SWX_ALLOW_DOMAIN;
$swx_url .= "&serviceClass=" . $_GET['serviceClass'];
$swx_url .= "&method=" . $_GET['method'];
$swx_url .= "&args=" . $_GET['args'];
$swx_url .= "&debug=" . SWX_DEBUG;

// コピー URL
//
// serviceClassがSimpleでmethodがechoDataなら
//「Simple_echoData.swf」生成される。
//
// 初期設定SWX_COPY_DIRの影響を受けるので、
// 正確にはcopy/Simple_echoData.swfに生成。
$copy_url = SWX_COPY_DIR . '/' . $_GET['serviceClass'] . '_' . $_GET['method'] . '.swf';

// SWX 読み込み
$result = fopen( $swx_url , 'r' );

// SWX 読み込み
$copy_fp = fopen( $copy_url , 'w' );

// SWXが帰ってきたらコピー
if ($result) {

while( !feof($result) ) {
$buffer = fgets($result, 4096);
fwrite( $copy_fp , $buffer );
}

fclose($result);
}

// Close
fclose( $copy_fp );

// 簡単な結果を返す
echo 'swx_url=' . $swx_url . '©_url=' . $copy_url

?>


コメントする

(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)