• ベストアンサー

【Flash】PHPを使って変数を読み出し

【count.php】にこのようなスクリプト記述。 動作はここで確認できます。 【ttp://flash-moe.yi.org/count/count.php】 <?PHP ini_set('display_errors', '1'); $file = file_get_contents ("./count.txt"); $file++; file_put_contents ("./count.txt", $file); $file = mb_convert_encoding($file, "UTF-7", "EUC-JP"); echo $file; ?> それを【LoadVars】を使って値を取得させるには どうしたらいいのか?教えてくださいm(_"_)m

  • Flash
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • perse
  • ベストアンサー率74% (113/152)
回答No.2

質問者さんのphpを使わせてもらって ローカルから試してみたところ カウントは取得できましたが、変数名になっていました(※)。 数字から始まる変数は宣言できませんので実際には使えません。 php側で echo "cnt=$file"; と出力すれば以下のASで取得できると思います。 var my_lv = new LoadVars(); my_lv.onLoad = function(s:Boolean) { if (s) { trace(my_lv.cnt); } }; my_lv.load("http://xxx.php"); ※ for ( var x in my_lv){ trace(x +"=" + my_lv[x]) } で見てみると 321= と表示されました。

dizzdive
質問者

お礼

動作確認できました! echoの処理を変えてAS側で取り出せました! ありがとうございます!!

その他の回答 (1)

noname#35109
noname#35109
回答No.1

私は PHP に関しては全くわかりませんし, 動作させる環境も持っていないのでコピペで検証もできません。 したがって回答にはなりませんが, 参考程度に,思ったことを少しだけ。 Flash が扱える文字コードは, UTF-8 と Shift-JIS のみです。 UTF-7 も EUC-JP も使えません。 その他, 「LoadVars.sendAndLoad」 をキーワードに検索したり調べたりしてみてください。 例↓ http://www.google.co.jp/search?hl=ja&q=LoadVars.sendAndLoad&lr= 良いサンプルが見つかるかもしれません。

dizzdive
質問者

お礼

自分も調べてやっていたのですが サンプルが難しくて・・・ 最初はポンクソフトさんのPHP連携でチャット動いたのは いいですけど、何度読んでも単純な取り出すだけの 処理がどこか判らなくて(汗 サンプルも落ちてるのはいいけど 肝心なPHP側のファイルがないとかで。。。 でも、改めて、LoadVars.sendAndLoadの 解説をじっくり見る機会があったので ありがとうございました。

関連するQ&A

  • PHP+Postgres 「髙」が文字化け

    DB上に格納した文字列を取得し、PHPで出力すると、 「髙」(はしごだか)等、一部の文字が「□・」のような見た目に化けてしまいます。 環境は以下です。 Linux(CentOS 5) PHP 5.1.6 Apache 2.2.3 PostgreSQL 8.4.3 文字コードは以下です。 Postgres:EUC-JP PHPソース:EUC php.ini の[mbstring]はコメントのまま変更していません。 文字コードの変換を試してみたのですが、「髙」としては出力できませんでした。 Windows上では「CP51932」に変換すると正常に出力できましたが、Linux上ではやはり駄目でした。 mb_language("uni"); mb_internal_encoding("euc-jp"); mb_http_input("auto"); mb_http_output("euc-jp"); $str = "髙橋"; print(mb_convert_encoding($str, "EUCJP-win")); print(mb_convert_encoding($str, "EUCJP-win","EUC-JP")); print(mb_convert_encoding($str, "SJIS")); print(mb_convert_encoding($str, "SJIS","EUC-JP")); print(mb_convert_encoding($str, "SJIS-win")); print(mb_convert_encoding($str, "SJIS-win","EUC-JP")); print(mb_convert_encoding($str, "UTF-8")); print(mb_convert_encoding($str, "UTF-8","EUC-JP")); print(mb_convert_encoding($str, "EUC","SJIS")); print(mb_convert_encoding($str, "Unicode")); print(mb_convert_encoding($str, "Unicode","EUC-JP")); print(mb_convert_encoding($str, "UTF-8", "sjis-win")); print(mb_convert_encoding($str, "CP51932")); print(mb_convert_encoding($str, "MS932")); print(mb_convert_encoding($str, "MS932","EUC-JP")); print(mb_convert_encoding($str, "UTF-8","EUCJP-win")); print(mb_convert_encoding(mb_convert_encoding($str, "EUCJP-win" ), "UTF-8","EUCJP-win")); print(mb_convert_encoding(mb_convert_encoding($str, "EUCJP-win","EUC-JP"), "UTF-8","EUCJP-win")); print(mb_convert_encoding(mb_convert_encoding($str, "SJIS-win" ), "UTF-8","SJIS-win")); print(mb_convert_encoding(mb_convert_encoding($str, "SJIS-win","EUC-JP"), "UTF-8","SJIS-win")); print(mb_convert_encoding(mb_convert_encoding($str, "SJIS-win" ), "EUCJP-win","SJIS-win")); print(mb_convert_encoding(mb_convert_encoding($str, "SJIS-win","EUC-JP"), "EUCJP-win","SJIS-win")); http://blog.livedoor.jp/loopus/archives/50160285.html 上記サイトによると、解決法は「EUC-JPで出力しないこと」という事でしたが、 文字コードを変換して出力できるような事を書いているサイトもあり、結論が出せずにいます。 ソースを書き換えるのは避けたいのですが、いい方法がありましたらご教示ください。

    • ベストアンサー
    • PHP
  • 外部ファイルから$a=1等の変数を読み込みたい

    <html> <body> <?php $contents = @file_get_contents('count.php'); echo $contents; ?> <span id="ck0001"><?php echo $count[ck0001] ; ?></span><br> <span id="ck0002"><?php echo $count[ck0002] ; ?></span><br> </body> </html> --------------------- count.txtの内容 $count[ck0001] = 4; $count[ck0002] = 3; こんな感じでここの値から引っ張ってきたいのですが、方法がわかりません。 備考:PHP触り始めてから今日で二日目です。

    • ベストアンサー
    • PHP
  • php4、php5によるimplode()、file()の動作の違い?

    お世話になります。 SJISのファイルで、 //----コメント //あああ //--------------- あああ,いいいいいいいいいいいいい ううううう,えええええええええええええ のようなファイルを作成して $csv へこSJISファイルのファイルパスを設定し、 $FielList = mb_convert_encoding(@implode('', @file($csv,FILE_SKIP_EMPTY_LINES)), "UTF-8", "SJIS"); $RowData = split("\r\n",$FielList); foreach($RowData as $Value) { $FName=trim($FName);$Cmnt=trim($Cmnt); echo '$FName='.$FName.'<br> $Cmnt='.$Cmnt.'<br>'; } と、その内容を見ると php5では、 $FName=//あああ $FName=//--------------- $FName=あああ $Cmnt=いいいいいいいいいいいいい $FName=ううううう $Cmnt=えええええええええええええ と、想定の結果が得られます。 しかし、php4だと、 $FName=//あああ//--------------- となってしまい、どうもcsvファイルの内容が\r\nにより仕切られて配列とならないようです。 そこで、 $FielList = mb_convert_encoding(@implode('###', @file($csv,FILE_SKIP_EMPTY_LINES)), "UTF-8", "SJIS"); $RowData = split("###",$FielList); とすれば、php4,php5でも動作します。 また、 $FielList = mb_convert_encoding(@implode('', @file($csv,FILE_SKIP_EMPTY_LINES)), "UTF-8", "SJIS"); $RowData = split("\n",$FielList); とすると、php4で予想の結果が返されますが、 php5では、echo で何も表示されなくなります。 ません。 php4、php5による \r\nの扱いの違い implode()の動作の違い file()の動作の違い だと思うのですが、どのように違うのかがわかりません。 このあたりのことをおわかりの方、 implode('###',@file(・・・ ) と記述しなくても implode('',@file(・・・ ) と記述することによりphp4、php5で同じように動作する方法がわからないでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 外部phpファイルを読み込むことができない

    ネットで検索し続けても本を買ってもどうしても解決しないのです。 教えてください。 やりたいことはMySQLのデータベースにphpでアクセスしに行き、 phpファイル上に contents=ああああああ と表示させたものを Flashで読み込んでテキストフィールドに表示させるということです。 ソースは次のようになっています。(FLASH上のテキストフィールドは「textarea」です。) onClipEvent (load) { my_lv = new LoadVars(); my_lv.onLoad = function(success) { if (success) { textarea.text = my_lv.contents; } else { textarea.text = "読み込みに失敗しました。"; } }; my_lv.load('contents.php?id=1'); } 基本的なLoadvarsのサンプルのようですが、contents.php?id=1が 読み込めません。(contents.php?id=1に直接アクセスすると contents=あああああああああ と表示されます) このcontents.php?id=1をcontents.txtのようにテキストファイルにして my_lv.load('contents.txt');とするとすんなりと読み込めます。 FLASHのバージョンは8で、httpsのサイト内で表示を行おうとしています。ファイルのパーミッションをすべて777にしてもだめでした。また、contents.phpを絶対パス指定してもだめでした。 おそらくちょっとしたことだと思うのですが、もう何日もはまっています。どなたか教えていただけないでしょうか?

    • ベストアンサー
    • Flash
  • PHP+MySQLで文字化け

    DBからデータを持ってきてPHPで表示させると文字化けしてしまいます。 PHPはEUC-JPです。 mb_convert_encoding($message, "EUC-JP")としてみても文字化けしてしまいます。 どなたか対処方法教えていただけたら嬉しいです。

    • 締切済み
    • PHP
  • PHPスクリプトでエンコードエラー

    (http://c-php.mine.nu/)で配布されている「貼り付けアンケート」を設置したところ、以下のようなエラーが出ました。 Warning: mb_convert_encoding(): Illegal character encoding specified in /home/toraya-c/public_html/harituke/harituke.php on line 94 Warning: mb_convert_encoding(): Illegal character encoding specified in /home/toraya-c/public_html/harituke/harituke.php on line 95 Warning: mb_convert_encoding(): Illegal character encoding specified in /home/toraya-c/public_html/harituke/harituke.php on line 96 Fatal error: Call to undefined function: mb_check_encoding() in /home/toraya-c/public_html/harituke/harituke.php on line 140 エンコードがうまくいってないようなのですが。。 指定の行数の記述は以下です。 $title = mb_convert_encoding($title,'EUC-JP',$en); $body = mb_convert_encoding($body,'EUC-JP',$en); $quest = mb_convert_encoding($quest,'EUC-JP',$en); if(!mb_check_encoding($body,'EUC-JP') || mb_check_encoding($body,'ASCII')){ 配布されているものを特に変えず(設定部分以外)、そのままupしたつもりですが、エラーの原因がわかりません。 当方、php初心者なので的外れな質問でしたら申し訳ございませんが、よろしくお願いします。

    • ベストアンサー
    • PHP
  • HYMLファイルの書換えに伴う文字化け

    質問させて下さい。 共有サーバーで複数のドメインを管理・運営しており、各ドメインのindex.htmlの内容を書換えたいと考えております。 サーバーのディレクトリ構造はこんな感じ。 public_html  |  |- sample1.com(フォルダ)  |     |  |     + index.html(Shint_JIS)  |  |- sample2.com(フォルダ)  |     |  |     + index.html(Shint_JIS)  |  |- sample3.com(フォルダ)  |     |  |     + index.html(Shint_JIS)  |  |- sample4.com(フォルダ)  |    |  |    + index.html(Shint_JIS)  |  +-un_txt.php(実行ファイル EUC-JP) この上記構成にある、un_txt.phpというファイルにアクセスすることで、各フォルダ内にあるindex.html内の内容を書換えたいと思っているのですが、PHPはEUCで指定しており、書換えたい各htmlファイルはShift_JISとなっているためか、実行すると文字化けが発生してしまいます。 以下は現時点てのスクリプト、そのままですが、どこがおかしいのかご指摘頂くことは可能でしょうか? <?php $text_data = array("ホームページ", "アイフォン", "スマートフォン"); $array = scandir("./"); mb_convert_variables("EUC-JP", "SJIS", $array); for($i=0; $i<count($array); $i++){ $name = trim($array[$i]); $dir_name = "./".$name; $html = "./".$name."/index.html"; if(is_readable($html)){ @chmod($html, 0606); $addstr = file_get_contents($html); $fp=@fopen("$html","r"); $no = ''; if($fp){ $main = ""; while (!feof($fp)){ $no++; $main .= fgets($fp,1000); } } for($m=0; $m<count($text_data); $m++){ $txt = $text_data[$m]; $no_txt = " "; //$text_data配列に登録されているキーワードを削除。 //削除出来ないため、$no_txt では半角スペースを与えている。 $main = strtr($main, $txt, $no_txt); } $main = mb_convert_encoding($main,"SJIS","EUC-JP"); $fp=fopen($html, "w"); fputs($fp,$main); fclose($fp); } } 以上、お忙しい中恐縮ですが、お知恵を頂戴出来れば幸いです。 宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • CSVファイルの文字コード変換について

    CSVファイルをアップロードし、文字コードをSJISからEUC-JPに変換したいのですが、文字化けが発生します。 ソースは以下のようになっています。 $i=0; $file = fopen($file_path,"r"); while ($data = fgetcsv($file, $file_size, ',')) { for ($j=0; $j < count($data); $j++) { $Array[$i][$j] = mb_convert_encoding($data$j], "EUC", "auto"); }$i++; } PHP5を使用しており、エクセルとテキストエディターでCSVファイルを作成してみましたが結果はどちらも同じでした。 どなたかご教授願います。

    • 締切済み
    • PHP
  • FlashからPHPへの変数の渡し方について

    初めまして。beterugiusと申します。 ご質問したいのですが、 まず、上下2フレームのindex.phpファイルがあります。 FLASHファイル(top_image.fla)は、シングルフレームのjpegイメージ(三枚の画像をPhotoShopで合成して、一枚のイメージにしてある。)です。 その.flaファイルを書き出した、.swfコンテンツ上をマウスが移動 すると、コンテンツ上のどの部分にマウスがあるかで、下フレームのTHMLが切り替わるようにしたいので、top_image.swf から、index.phpに対して、GETメソッドでページ番号の変数自身を 渡したいのですが、実際にFLASHコンテンツ上をマウスで動かしてみると、ブラウザのアドレス欄に、GETメソッドのクエリー文字列の「?」 だけは追加されているのですが、肝心の変数が渡されておらず、 下フレームのHTMLも切り替わりません。 どうすればちゅんと動くのか、どなたかご回答いただけないでしょうか? -------------------------------------------------------------- 「top_image.fla」 var sendObj:LoadVars = new LoadVars(); var page:Number; function onMouseMove(){ var x:Number = top_image._x; // グラフィックの中心座標 var y:Number = top_image._y; if( 0 <= y && y <= 316 ){ if( 0 <= x && x <= 255 ){ page = 1; sendObj.send("../php/index.php", "page", "GET"); } else if( 256 <= x && x <= 512 ){ page = 2; sendObj.send("../php/index.php", "page", "GET"); } else if(513 <= x && x <= 766 ){ page = 3; sendObj.send("../php/index.php", "page", "GET"); } } } -------------------------------------------------------------- 「index.php」 <html> <head><title>ActionScript2.0</title> <meta http-equiv="content-type" content="application/x-www-form-urlencoded"> </head> <frameset rows="350,*"> <frame name="top" src="../html/top.html"> <?php // Action ScriptからのPOSTデータの取得 $page = $_GET['page']; switch($page){ case 1: print("<frame name='bottom' src='../html/bottom1.html'>"); break; case 2: print("<frame name='bottom' src='../html/bottom2.html'>"); break; case 3: print("<frame name='bottom' src='../html/bottom3.html'>"); break; } if(is_null($page)){ // $page変数の中身がNULL(未定義)の場合 print("<frame name='bottom' src='../html/blank.html'>"); } ?> </frameset> </html> -------------------------------------------------------------

    • ベストアンサー
    • Flash
  • PHPとmysqlでの文字化けについて

    現在PHPとMySQLを利用したwebシステムを作成しています。 しかし文字化けが発生して困っています。こちらの環境は PHP5.1.4 MySQL5.1.11 phpMyAdmin - 2.8.0-rc1 レンタルサーバー(xrea)を使っています。 自分でいろいろと調べたところ文字のエンコードはujisに統一したほうがいいとのことまではわかりました。 show variables like "char%"; を実行したところ character_set_client utf8 character_set_connection sjis character_set_database ujis character_set_filesystem binary character_set_results utf8 character_set_server utf8 character_set_system utf8 このように表示されます。 PHPの方も <?php header('Content-Type:text/html; charset=EUC-JP'); ?> や <?php $str = mb_convert_encoding($str, "EUC-JP", "auto"); ?> を実行しても日本語の部分は???で表示されてしまいます。 いろいろと調べたのですが、さっぱり原因がわかりません。 よろしくお願いします。

専門家に質問してみよう