分類
程式技術

在Flash中取得所在網頁及被嵌入的網址

這個題目好難下. 主要是要說明, 在 Flash 中的 swf 程式內, 如何取得該 swf 嵌在哪個網頁(url), 以及被嵌入使用的 url (註1). 以下介紹的是在 AS3 下的作法.

(註1)的部分是指 <embed src=”XXXXXXX” /> 的其中 “XXXXXXX” 的部分.

程式碼並不複雜, 主要是利用了 ExternalInterface.call(“window.location.href.toString”); 來取得該 swf 嵌在哪個網頁(url).

而被嵌入的 url 則是利用了 loaderInfo 中的 loaderURL 取得, 程式碼如下:

import flash.external.*;

var strUrl:String;
var strQueryString:String;

strUrl = ExternalInterface.call("window.location.href.toString");

strQueryString = "";

var params:Array = strUrl.split('?');
if(params.length>1)
{
    strQueryString = params[1];
}

var strEQueryString:String;
strEQueryString ="";
for (var s1:String in this.loaderInfo.parameters) {

  strEQueryString += s1 + "=" + this.loaderInfo.parameters[s1] + ";";
}
 
 
output_txt.text = 
  "Result:\n"+
  "location="+strUrl+"\n"+"querystring="+strQueryString+"\n"+
  "embed-url="+this.loaderInfo.loaderURL+"\n"+
  "embed-querystring="+strEQueryString+"\n";

取得第一個部分, 是取出整個 url 後, 再自行解析 (parse) 出 querystring 內容. 而在第二個部分, 因為是使用 loaderInfo, 所以 querystring 的參數可以直接使用 parameters 來取得.

sample link : http://sample.diary.tw/21/sample.htm?q1=123&q2=456&q3=789

其中 embed 的內容為: location.swf?eq1=abc&eq2=def 所以出現的結果如下:

參考資料:
http://ccutmis2.spaces.live.com/Blog/cns!F858878FA572B430!1016.entry
http://mc-computing.com/Languages/ActionScript/Getting_html_data.html

php中改變ini設置方法

在 php 中, 有時需要調整 ini 內的設定值, 以獲得某些特性, 例如將 display_errors 參數設置為 Off 時, 做為錯誤資訊隱藏, 但是在寫作或除錯程式時, 希望能將此參數設置為 On, 設置完成後又要重起 apache, 這樣不僅不方便, 又會影響服務, 此時使用 ini_set() 函數將會是最方便有效的方式.

string ini_set ( string varname, string newvalue )
函數用法: http://tw2.php.net/manual/tw/function.ini-set.php

利用 ini_set 可以將 ini 的參數於設置時更動, 並於該 php 結束時復原, 若需要提早復原, 可以利用 ini_restore ( string varname ) 進行參數復原操作.

如此一來, 便能方便快速地在某些程式裡進行參數調整又不影響其他程式運行, 將能有效方便維護及應用. 後面為一個範例:

http://sample.diary.tw/6/ini.php

另外值得注意的是, 此參數可用 On, on, 1 代表開啟, 利用 Off, off, 0 代表關閉!

參考資料:
http://blog.chweng.idv.tw/archives/413/