amfphp
① amfphp安裝問題,打開browser文件夾後是目錄形式的
請參考
② amfphp 和php兩者是什麼關系,有什麼不同
amfphp可以理解成一個php框架,http://ke..com/view/1919457.html
php就是語言,而amfphp這個框架的編寫使用的是php語言。。。不懂這樣你能理解不= =
③ 公司升級php5.5和amfphp交互的,我想問下版本兼容性的問題
最近我開始東西發現公司的主機php版本不夠用
後來分析了很多不同版本,
發覺5.4.2x 是比較好的,已正在使用5.4.28
如果有什麼特別的需要,那沒辦法只能升上php5.5,再想別的辦法解決你AS4
的問題
但如果沒特別需要,那就可以考慮別上5.5,先用5.4
我要求公司升上去有2原因
1. PHP5.4比5.2/5.3支援pdo更好
2. PHP5.4 的確比其他的快
5.5差別太大,沒信心去修改兼容性
④ 關於flash里用amfphp的問題
你好像寫難了點。
看看
flash影片與Mysql資料庫的鏈接方法,讀取信息橋梁是php5腳本鏈接的Amfphp模塊。
php的安裝要全的版本有4個文件。設置支持mysql和amfphp模塊安裝。
再Apache2的環境伺服器系統里做flash cs3 文檔,和php文檔。
先建資料庫和表。在php用語言來建比較直觀一點。
$hostname = "localhost";
$username = "root";
$password = "123";
$con = mysql_pconnect($hostname, $username, $password);
if($con){echo "連接mysql伺服器成功!<br>";}else{echo "連接mysql伺服器出現錯誤,請檢查。<br>";}
// 資料庫名稱:phpFlash
// 數據表名: wenZhang
// 欄位名有: id feiLei biaoTi neiRong yongHu yue laiYuan fBriqi
// 編號 分類 標題 內容 用戶 閱讀數 來源地 發表日期
$sqlku = "CREATE DATABASE phpFlash;";
$inretku = mysql_query($sqlku);
if($inretku){echo "創建了一個phpFlash資料庫成功!<br>";}else{echo "創建資料庫出現錯誤,請檢查。<br>";}
$strsqlBiao = "CREATE TABLE `wenZhang` (
`id` int(11) NOT NULL auto_increment,
`feiLei` varchar(26) character set utf8 COLLATE utf8_general_ci NOT NULL,
`biaoTi` varchar(60) character set utf8 COLLATE utf8_general_ci NOT NULL,
`neiRong` text character set utf8 COLLATE utf8_general_ci NOT NULL,
`yongHu` varchar(26) character set utf8 COLLATE utf8_general_ci NOT NULL,
`yue` int(4) NOT NULL,
`laiYuan` varchar(60) character set utf8 COLLATE utf8_general_ci NOT NULL,
`fBriqi` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;";
mysql_select_db("phpFlash", $con);
$inretbiao = mysql_query($strsqlBiao);
if($inretbiao){echo "創建了一個文章表成功!<br>";}else{echo "創建表出現錯誤,請檢查。<br>";}
建好了表和庫就有插入數據記錄,還是用php來插入數據,目的是檢查數據的正確性,有時出現中文亂碼現象好及時處理。
先做一張表單見圖;
插入數據表的php代碼;
if(($_POST['button2'] == '提交')&&($_POST['biaoti'] != "")){
require_once('connfig.php');
// 欄位名有: id feiLei biaoTi neiRong yongHu yue laiYuan fBriqi
// 編號 分類 標題 內容 用戶 閱讀數 來源地 發表日期
$a1 = $_POST['fenLei'];
$a2 = $_POST['biaoti'];
$a3 = $_POST['neirong'];
$a4 = $_POST['yonghu'];
$a5 = $_POST['yue'];
$a6 = $_POST['laiyuan'];
$a7 = $_POST['fbriqi'];
$sqlRs = "INSERT INTO `wenzhang`(feiLei, biaoTi, neiRong, yongHu, yue, laiYuan, fBriqi) VALUES ('$a1', '$a2', '$a3', '$a4', '$a5', '$a6', '$a7');";
$Rs = mysql_query($sqlRs, $con) or die(mysql_error());
}
測試插入數據,成功。然後還有做一張是顯示表的php文檔看看結果。
require_once('connfig.php');
$query_Rs = "SELECT * FROM wenzhang";
$Rs = mysql_query($query_Rs, $con) or die(mysql_error());
$row_Rs = mysql_fetch_assoc($Rs);
$totalRows_Rs = mysql_num_rows($Rs);
<?php do { ?>
<tr>
<td height="28" align="center"><?php echo $row_Rs['id']; ?></td>
<td><?php echo $row_Rs['feiLei']; ?></td>
<td><?php echo $row_Rs['biaoTi']; ?></td>
<td align="center"><?php echo $row_Rs['yue']; ?></td>
<td align="center"><a href="c_XiugaiBiao.php?xgid=<?php echo $row_Rs['id']; ?>">修改</a> 刪除</td>
</tr>
<?php } while ($row_Rs = mysql_fetch_assoc($Rs)); ?>
結果出來了。
我的文檔/顯示記錄結果圖結果.jpg
現在應該來做flashcs3的插入數據和顯示數據影片。
flash的界面圖片效果圖。
下面是As3腳本。
var tf:TextFormat = new TextFormat();///- 設置字元 -
tf.color = 0x000000;// 黑色
tf.size = 12;
tf.font = "Arial Baltic,宋體";
biaoti.setStyle("textFormat",tf);
fenLei.setStyle("textFormat",tf);
neirong.setStyle("textFormat",tf);
fabu.setStyle("textFormat",tf);
////====="AspVBScript","phpMysql","FlashFlex","FlashAs3游戲","資料庫伺服器"<=====下拉列表內容
fabu.addEventListener(MouseEvent.CLICK, fabuCK);///偵聽按鈕
function fabuCK(event:MouseEvent) {
//trace("標題的按鈕"+ event.currentTarget.name);
/*trace(fenLei.text);
trace(biaoti.text);
trace(neirong.text);
trace(faburen.text);
trace(laiyuan.text);*/
var s1:String= fenLei.text;
var s2:String= biaoti.text;
var s3:String= neirong.text;
var s4:String= faburen.text;
var s5:String= laiyuan.text;
//trace (s1);
//--連接PHP的主文件gateway.php解釋處理
var gateway_url:String = "http://localhost/amfphp/gateway.php";
var geteway_conn:NetConnection = new NetConnection();
geteway_conn.connect(gateway_url);
geteway_conn.call("phpFlashXinXi.chaRu", new Responder(onResult, onFault),s1,s2,s3,s4,s5);
}
function onResult(result:String):void{
trace ("插入信息成功!");
}
function onFault(result:String):void{
trace("出現錯誤哦。");
}
還不要忙去測試,還有php的腳本沒有寫,在C:\Apache2\htdocs\amfphp\services寫腳本文件。
phpFlashXinXi.php
//--添加信息--插入記錄---
// 欄位名有: id feiLei biaoTi neiRong yongHu yue laiYuan fBriqi
// 編號 分類 標題 內容 用戶 閱讀數 來源地 發表日期
class phpFlashXinXi
{
function chaRu($fl,$bt,$nr,$yh,$ly)
{
$aarq = date("Y-m-d");
mysql_pconnect("localhost","root","123");
mysql_select_db("phpFlash");
$sqlRs = "INSERT INTO wenzhang(feiLei, biaoTi, neiRong, yongHu, yue, laiYuan, fBriqi) VALUES ('$fl','$bt', '$nr', '$yh', '1', '$ly', '$aarq');";
$Rs = mysql_query($sqlRs);
if($Rs){
return "ok";
}
}
}
現在就可以flash影片測試了,看看結果用前面的php文檔來顯示,就知道結果是不是插入了數據。
插入數據是很重要的,讀出數據更重要。
讀出數據要顯示在影片的什麼地方,有很多的方法。用組件是最簡單的,我是用的文本方式顯示在影片里。
///讀取資料庫信息======直接用的按鈕在屬性實例名寫上按鈕名加上偵聽===
AspVBScript.addEventListener(MouseEvent.CLICK, ddhmcCk);
FlashFlex.addEventListener(MouseEvent.CLICK, ddhmcCk);
phpMysql.addEventListener(MouseEvent.CLICK, ddhmcCk);
function ddhmcCk(event:MouseEvent):void {
///trace(event.currentTarget.name);
var ss:String = event.currentTarget.name;
callAmfPHP(ss);
}
//--連接PHP的主文件gateway.php解釋處理
var gateway_url:String = "http://localhost/amfphp/gateway.php";
var geteway_conn:NetConnection = new NetConnection();
////調PHP連接的資料庫
function callAmfPHP(str:String):void {
geteway_conn.connect(gateway_url);
geteway_conn.call("phpFlashXinXi.xianShiLei", new Responder(onRok, onFerr),str);
}
//正確獲得數據方法一onResult是有數據獲取成功---onFault沒有數據Object
function onRok(resu:Array):void {
///trace(resu[0]["biaoTi"]);
var cktxt:Array = new Array();// 窗口裡的文字
for (var i:int = 0; i<resu.length; i++) {
cktxt[i] = new TextField();
cktxt[i].text =resu[i]["biaoTi"];
cktxt[i].x = 10;
cktxt[i].y = 10 + 22 * i;
cktxt[i].width = 130;
cktxt[i].height = 22;
changk_Mc.addChild(cktxt[i]);// 加入到影片里顯示
}
}
function onFerr(resu:Object):void {
trace("amfphp-error");
}
php文檔在同上一章的情況一樣。加在phpFlashXinXi.php文件里。
function xianShiLei($LeiMing){
$conn = mysql_pconnect("localhost","root","sa");
mysql_select_db("phpFlash", $conn);
$chalei = "SELECT * FROM wenzhang WHERE feiLei = '".$LeiMing."' ORDER BY id DESC";
$jieG = mysql_query($chalei, $conn);
$arrjieg = array();
if ($jieG) {
while($data = mysql_fetch_array($jieG, MYSQL_ASSOC))
{
array_push($arrjieg,$data);
}
return $arrjieg;
}else{
return "SQL-error!";
}
}//xianShiLei
是我寫的看看在http://www.cqphpnet.com/Flex/liuyanben.html 留言本
在「重慶職教網」有我寫的教程就是上面的。
⑤ 誰有解決amfphp 1.2 支持中文的方法,0.9c的不好使啊!
朋友,你真是好心,,,直接關了,確是浪費!!!
修改io/的
AMFInputStream.php和AMFSerializer.php
去掉utf8_encode和utf8_decode即可!
AMFPHP是PHP平台實現類似於Macromedia的產品Flash Remoting的開源組件,但因為其開發還未完善,使用中會出現無法顯示漢字的情況,究其原因就在於字元編碼轉換過程中出現問題。
網上曾有人提出過解決方法,就是去掉utf8編碼和解碼的過程。但我發現只是解決了從Flash到AMFPHP再回到Flash的字元串傳遞過程,這中間數據都是以unicode的形式傳遞的,所以沒有出現問題,例如AMFPHP自帶的例子中那樣。但是從service到Flash仍然無法實現正常的顯示。
所以必須正確編/解碼才可以完整解決顯示漢字的問題。
解決方法(以簡體漢字為例):
為PHP安裝好iconv模塊,然後做如下修改。
修改utf8的編碼(即utf8_encode函數)過程為:iconv("GB2312","UTF-8",$string)
修改utf8的解碼(即utf8_decode函數)過程為:iconv("UTF-8","GB2312",$string)
需要修改的文件有:
\flashservices\io\AMFInputStream.php' :
\flashservices\io\AMFSerializer.php' :
\flashservices\sql\adodbRecordSet.php' :
\flashservices\sql\mssqlRecordSet.php' :
\flashservices\sql\mysqlRecordSet.php' :
\flashservices\sql\odbcRecordSet.php' :
\flashservices\sql\postgresRecordSet.php' :