丸ごと読み書きする(PHP)
Flash(ActionScript)だけでは、データを保存することができないので、Perl、PHP、Ruby、Python等のいずれかのサーバースクリプトを利用することになります。
ここでは、PHPを使ったシンプルな読み書きをメモ用にまとめてみました。
一行ごとに処理する方法(汎用のFileManagerクラス等も存在する)もありますが、データ行数が少ない場合は個々のデータ処理をActionScript側で行い、POST送信された変数をPHPで丸ごと読み書きした方が簡単(ロジックがシンプル)です。
<?php
$fp=fopen("download.xml","r");
$load=fread($fp,filesize ("download.xml"));
print $load;
fclose($fp);
?>
<?php
$fp=fopen("download.xml","w"));
$data =stripcslashes($HTTP_POST_VARS["send_data"]);
flock($fp,LOCK_EX);
fwrite($fp,$data);
flock($fp,LOCK_UN);
fclose($fp);
?>
「send_data」は、Flash側からPOST送信される変数名(プロパティ)。
stripcslashes()関数は、送信された文字列をアンエスケープする(必要な場合)
上記のサンプルではXMLデータをやり取りしてるので文字列内にシングルクォート(')やダブルクォート(")やバックスラッシュ(\)、ヌル文字を含む場合はActionScript側でエスケープする必要があるので、当然PHP側でアンエスケープする。