Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-11-2005, 08:29   #1 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
html-formatierten text speichern? (mit konkretem Beispiel)

hallo,
im moment kann ich einen (einfachen) Text per php speichern und wieder abrufen. Nun möchte ich gerne mit htmlText arbeiten.
Das Einlesen klappt, die Verwendung von Stylesheets auch.
Nachdem ich aber nun den htmlText in Flash in einem input-Textfeld bearbeitet habe, möchte ich ihn wieder per php in die html-Datei speichern.

Zwar klappt auch das, allerdings ist flash anschließend nicht mehr dazu in der Lage, diesen html-Text darzustellen.

Scheinbar geht beim Speichern durch das php-Script irgend eine Formatierung verloren. Wenn ich mir den Code in Flash tracen lasse, sehe ich, daß er ansich korrekt aussieht.

Hat jemand von euch Erfahrung damit, htmlText zu speichern?

Danke für Hilfe!

(anbei natürlich das Beispiel)
Angehängte Dateien
Dateityp: zip htmltext.zip (7,2 KB, 12x aufgerufen)
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 22-11-2005, 08:32   #2 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
schade, unerwartetes dateiformat (me@MX2004pro)
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.
shorty ist offline   Mit Zitat antworten
Alt 22-11-2005, 08:44   #3 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
shit, hätte ich dran denken müssen.
hier ist ne version für mx 2004

es gilt zu bedenken:
richtig testen kann man das eiegntlich nur online.
ich habe es testhalber mal auf www.vivavision.de/test liegen.

und nachdem man änderungen vorgenommen hat, zeigt er noch so lange den alten text, bis man die seite aktualisiert.
Angehängte Dateien
Dateityp: zip htmltext2004.zip (7,6 KB, 14x aufgerufen)
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 22-11-2005, 09:04   #4 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Jup Twister, guck dir mal den String, welcher nach dem Bearbeiten in die news.html geschrieben werden soll ganz genau an. du wirst sehen, das das php script n ganzen satz zeichen ersetzt, z.B. schreibt es vor hochkomata ein slash, was dann bei bearbeitung der datei, in der vorher folgendes stand:
HTML-Code:
<a href="shorty.html">hello world!</a>
danach so aussieht:
HTML-Code:
<a href=\"shorty.html\">hello world! </a>
flash kann nun natürlich den html text als solchen nichtmehr erkennen, und zeigt ihn somit nichtmehr an, weil nicht gültig.
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.
shorty ist offline   Mit Zitat antworten
Alt 22-11-2005, 09:30   #5 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
ahjooo,
gut, also das ist dann schonmal die fehlerursache.
gute diagnose! :-)
vielen dank schonmal!

nun habe ich also beim einlesen des contents versucht, per split'n'join den backslash durch "" (also nichts) zu ersetzen, was offensichtlich nicht funzt.

besser wäre ja ohnehin, die html gleich sauber zu schreiben, anstatt die grütze nachher durch flash neu interpretieren zu lssen.

hmm ...
also ich vermute mal, daß du mich schon nah an's ziel gebracht hast.
ich fummel mal weiter.
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 22-11-2005, 10:11   #6 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Lightbulb

Nein, nicht so umständlich, guck hier, so gehts auch mit umlauten, sonderzeichen, und und und, und vor allem ohne System.useCodepage & den üblichen split and join martathon müll...

ich habe, damit du siehst wie es läuft n template text mit allen möglichen sonderzeichen & link reingeschrieben. pass deine pfade an, drück auf senden, und danach schau'st was im textfeld bzw. der news.html steht.
TimeLine
PHP-Code:
this.stop();
//  -------------------------------------------------
var _r:MovieClip _level0;
var 
_t:MovieClip this;
//  -------------------------------------------------
function submit():Void {
    var 
lv:LoadVars = new LoadVars();
    
lv.onLoad = function(ok) {
        if (
ok) {
            
_t.txtInput.htmlText this.content;
        }
    };
    
//  achte hier auf die escape-sequenz vorm senden !
    
lv.content escape(txtInput.text);
    
lv.sendAndLoad('http://localhost/_root/tester/write.php'lv'POST');
}
btSendAndLoad.onRelease = function() {
    
submit();
};
txtInput.text '<a href="http://www.shorty-bmc.com">!"§$%&/()=?ß,.-!?</a> shorty <b>müller</b>'
PHP
PHP-Code:
<?php

    $file 
"news.html";
    
$content $_POST['content'];
    
$content urldecode($content);
    
$content utf8_decode($content);
    
    
$src fopen($file"w");
    
fwrite($src $content);
    
fclose($src);    

    
$src fopen($file,"r");
    
$newContent fgets($src);
    
$newContent utf8_encode($newContent);
    
fclose($src);
    
    echo 
"&content=".$newContent;
    
?>

gruß,
shorty
Angehängte Dateien
Dateityp: zip php write mit sonderzeichen.zip (7,1 KB, 15x aufgerufen)
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shorty (22-11-2005 um 10:37 Uhr)
shorty ist offline   Mit Zitat antworten
Alt 22-11-2005, 10:20   #7 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
ja wie geil ist das denn??

also es geht!

saubere sache, vielen dank, shorty!
*ordenverleih* :-)

dann werde ich es mal versuchen, auf meinen fall umzumünzen.
*bastel und fummel*
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 22-11-2005, 10:23   #8 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
°lach° freut mich wenn's dich glücklich macht

sport frei, peace & fette beute
shorty
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.
shorty ist offline   Mit Zitat antworten
Alt 22-11-2005, 10:39   #9 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
ahhh, lol, da war n schönheitsfehler in folgender zeile des php scripts (habs oben schon geändert)
PHP-Code:
$newContent utf8_encode($content); 
es sollte natürlich so lauten (nicht das du denkst ich will dich ***split and join*** )
PHP-Code:
$newContent utf8_encode($newContent); 
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.
shorty ist offline   Mit Zitat antworten
Alt 22-11-2005, 10:47   #10 (permalink)
von natur aus sanft
 
Benutzerbild von darwin26
 
Registriert seit: Jan 2002
Ort: Landshut
Beiträge: 1.404
<<--- sich auch freut über den Schnipsel ...

Danke shorty...
grz.Chris
__________________
------------------------------------------------
Lieber mal nachfragen als stundenlang doof rumsitzen ;)
Landshuter Hochzeit 1475
------------------------------------------------
darwin26 ist offline   Mit Zitat antworten
Alt 22-11-2005, 10:59   #11 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
hehe, hi darwin - bidde, bidde
hab's gleich mal in meine sig gepackt, kommt ja öfter vor die frage mit den umlauten o.ä.
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.
shorty ist offline   Mit Zitat antworten
Alt 22-11-2005, 11:01   #12 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
soderle, habe die schönheitskorrektur auch durchgeführt :-)
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 22-11-2005, 12:33   #13 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 283
Aber bitte Vorsicht mit dem '&' bei der Verwendung von escape()/unescape() und utf8_encode()/utf8_decode(). Dieses Zeichen wird nicht mit kodiert und kann für fehler sorgen .
__________________
ein mensch ohne macke ist kacke...
DaKinel ist offline   Mit Zitat antworten
Alt 22-11-2005, 16:22   #14 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Lightbulb

Nun gut, wie herr bokelberg so schön sagt: "es muss immer noch was zum optimieren übrig bleiben" thx für den tipp @ kinel. Dann halt doch etwas split & join.

{edit} einen post weiter unten (#15), dass ganze Klassenbasiert (flash & php)

timeline
PHP-Code:
this.stop();
//  -------------------------------------------------------------------------------------------
var _r:MovieClip _level0;
var 
_t:MovieClip this;
//  -------------------------------------------------------------------------------------------
var a:Array = new Array();
//  hier die zu splitenden zeichen (thx @ daKinel :) eingeben)
a[0] = ['%''{MODULO}'];
a[1] = ['+''{PLUS}'];
a[2] = ['&''{AND}'];
function 
check(s:Stringout:Boolean):String {
    for (var 
i in a) {
        
out == true s.split(a[i][0]).join(a[i][1]) : s.split(a[i][1]).join(a[i][0]);
    }
    return 
out == true escape(s) : s;
}

//  -------------------------------------------------------------------------------------------
function submit():Void {
    var 
lv:LoadVars = new LoadVars();
    
lv.onLoad = function(ok) {
        if (
ok) {
            
//  beim empfang den parameter false übergeben
            
_t.txtInput.htmlText check(this.contentfalse);
        }
    };
    
//  beim versenden den parameter true übergeben
    
lv.content check(txtInput.texttrue);
    
lv.sendAndLoad('http://localhost/_root/tester/write.php'lv'POST');
}

//  -------------------------------------------------------------------------------------------
btSendAndLoad.onRelease = function() {
    
submit();
};
txtInput.text ' % & + öäüÖÄÜ?=)\(/&%$§"!~\''
php
PHP-Code:
<?php

    
function check($s$out) {
        
$a = array();
        
//  hier die zeichen eingeben (genau wie in der .fla)
        
$a[0] = array('%'"{MODULO}");
        
$a[1] = array('+'"{PLUS}");
        
$a[2] = array('&'"{AND}");
        
        for(
$i 0$i count($a); $i++) {
            
$out == true $s eregi_replace('\\'.$a[$i][0], $a[$i][1], $s) : $s eregi_replace($a[$i][1], $a[$i][0], $s);
        }
        return 
$s;
    };

    
$content $_POST['content'];
    
$content urldecode($content);
    
$content utf8_decode($content);
    
$content check($contentfalse);
    
    
$file "news.html";
    
$src fopen($file"w");
    
fwrite($src $content);
    
fclose($src);    

    
$src fopen($file,"r");
    
$newContent fgets($src);
    
$newContent utf8_encode($newContent);
    
$newContent check($newContenttrue);
    
fclose($src);
    
    echo 
"&content=".$newContent;
    
?>
damit's nicht zu kompliziert wird, habe ich die funktionen in flash & php ma gleich benannt ...

so besser?


shorty
Angehängte Dateien
Dateityp: zip php write mit sonderzeichen und umlauten.zip (8,1 KB, 11x aufgerufen)
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shorty (22-11-2005 um 19:49 Uhr)
shorty ist offline   Mit Zitat antworten
Alt 22-11-2005, 19:45   #15 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Lightbulb

Und weils so schön & nützlich zu sein scheint, hier das ganze OOP - Klassenbasiert (eine für flash & eine für php).

Um es richtig nutzen zu können, müssen die Klassenpfade für php & flash richtig gesetzt werden, wenn das erledigt ist, ist das handling super easy. Ich habe mal n kleines Beispiel mit rein getan.

Flash-Klasse (PhpString):
PHP-Code:
/***
 * PhpString
 *
 * Method : replace (s:String, out:Boolean)
 * set parameter "out" on true to submit a string, 
 * or false, for incomming php replaced strings.
 *
 * Note : php-class "FlashString.inc.php" needed!
 *
 * use -> start
 
 import com.shortybmc.extensions.string.*;
 var strSubmit:String = '+ shorty % shorty & ';
 strSubmit = PhpString.replace(strSubmit, true);
 trace(strSubmit);

 var strReceive:String = '{PLUS} shorty {MODULO} shorty {AND}';
 strReceive = PhpString.replace(strReceive, false);
 trace(strReceive);

 * use -> end
 *
 *
 * @shorty
 * @http://www.shorty-bmc.com
 *
 */
import com.shortybmc.extensions.string.*;
class 
PhpString extends String {
    public static function 
replace (s:Stringout:Boolean) : String {
        var 
a:Array = new Array();
        
a[0] = ['%''{MODULO}'];
        
a[1] = ['+''{PLUS}'];
        
a[2] = ['&''{AND}'];
        for (var 
i in a) {
            
out == true s.split(a[i][0]).join(a[i][1]) : s.split(a[i][1]).join(a[i][0]);
        }
        return 
out == true escape(s) : s;
    }

PHP-Klasse (FlashString)
PHP-Code:
<?php

    
class FlashString {
        function 
replace ($s$out) {
            
$a = array();
            
$a[0] = array('%'"{MODULO}");
            
$a[1] = array('+'"{PLUS}");
            
$a[2] = array('&'"{AND}");
            
            if (
$out == true) {
                
$s utf8_encode($s);
            } else {
                
$s urldecode($s);
                
$s utf8_decode($s);            
            }
            for(
$i 0$i count($a); $i++) {
                
$out == true $s eregi_replace('\\'.$a[$i][0], $a[$i][1], $s) : $s eregi_replace($a[$i][1], $a[$i][0], $s);
            }
            return 
$s;
        }
    }

?>
Anwendungsbeispiel - Flash (LoadVars)
PHP-Code:
this.stop();
//  -----------------------------------------------------------------------
import com.shortybmc.extensions.string.*;
//  -----------------------------------------------------------------------
function submit(s:String):Void {
    var 
lv:LoadVars = new LoadVars();
    
lv.onLoad = function(ok) {
        if (
ok) {
            
txtInput.htmlText PhpString.replace(this.contentfalse);
        }
    };
    
lv.content PhpString.replace(strue);
    
lv.sendAndLoad('http://localhost/_root/tester/example.php'lv'POST');
}
//  ------------------------------------------------------------------------
btSendAndLoad.onRelease = function() {
    
submit(txtInput.text);
}; 
Passend dazu das php Script, welches den datenstrom aufnimmt, mittels der php-klasse zeichen formatiert, eine html datei schreibt, jene ausliest, und den inhalt an flash zurück sendet, welches wiederum ... bla bla bla... anschauen
PHP-Code:
<?php

    
require_once("FlashString.inc.php");
    
$flashString = new FlashString();
    
    
$content $_POST['content'];
    
$content $flashString->replace($contentfalse);    
    
    
// example start
    
$file "foo.html";
    
$src fopen($file"w");
    
fwrite($src $content);
    
fclose($src);    

    
$src fopen($file,"r");
    
$newContent fgets($src);
    
fclose($src);
    
// example end
    
    
$newContent $flashString->replace($newContenttrue);
    echo 
"&content=".$newContent;

?>
Das wars ...


shorty
Angehängte Dateien
Dateityp: zip KlassenBasiert - php write mit umlauten und sonderzeichen.zip (11,2 KB, 26x aufgerufen)
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shorty (22-11-2005 um 19:50 Uhr)
shorty ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:03 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele