SWiSH Forum
Forum użytkowników programów SWiSH

Skrypty do programu SWiSH2 i SWISHmax - Polskie znaki, ogonki, kodowanie

rash - Sro 12 Lis, 2008 22:20
Temat postu: Polskie znaki, ogonki, kodowanie
Przeglądając forum często powtarzają się pytania o polskie znaki ...
Postanowiłem napisać coś od siebie :)
Oto kilka przykładów rozwiązania "problemu"

Nasz problem to kodowanie utf-8 :)

1. Masz plik tekstowy wczytujesz do swf'a masz krzaki lub wycina literki

rozwiązanie:

jeśli jest to plik statyczny, który edytujesz raz i zapominasz nie męcz się użyj notatnika :)
plik zapisz jako ...

w 90% przypadków wystarczy

2. plik z treścią dynamiczną (samo aktualizujące sie newsy np.)

najlepiej wczytywać plik .php
php:
<?php


function do_iso($tekst)
{
$tekst = iconv('ISO-8859-2', 'utf-8', $tekst);
return $tekst;
}
//


$myFile=fopen("http://www.jakasstrona.pl/strona.html","r");
while(!feof($myFile))
{
$myLine.=fgets($myFile,4096);
}
fclose($myFile);


$start="<ul>"; // od czego zaczynamy - dowolny fragment kodu rozpoczynający interesujący nas fragment strony
$end="</ul>"; // na czym konczymy - dowolny fragment kodu kończący interesujący nas fragment strony

$start_position=strpos($myLine, $start);
$end_position=strpos($myLine, $end)+strlen($end);
$length=$end_position-$start_position;
$myLine=substr($myLine, $start_position, $length);

$opis = do_iso($myLine); // ogonki :) jeżeli wyciągamy dane bezpośrednioz bazy danych możemy pominąć funkcje (zakładając ze baza jest kodowana w utf)

$tekst = "&tekst=$opis&";

print "$tekst";
?>

w nazwę pola wpisujemy "tekst"

generalnie w zmiennej tekst może być wszystko cały kod html itd. czasami jednak może się pojawić problem, nagle wczytuje się tylko część tekstu ...

3. często jest tak kiedy podłączamy stronę, na której są linki przekazujące zmienne np. www.jakasstrona.pl/?id15&s=345657&kka=123 itd.. problemem są nieszczęsne &
(zakładamy oczywiście że chcemy, aby działały)

wtedy z pomocą moze przyjsc funkcja:

Kod:
$myLine=str_replace("&","$$",$myLine);


zamieniamy sobie "&" na np "$$"

i spokojnie wczytujemy :) jednak jeśli chcemy, aby linki były aktywne ....

musimy zadziałać podobnie działającą funkcją w swishu:

kiedyś znalazłem taką i działą super:


Kod:
onSelfEvent (enterFrame)
{
    // -----------------------
// Replace single or
// multiple chars in a
// String.
// The original string is
// not affected.
//
// Based on a idea of
// Davide Beltrame (Broly)
// mail: davb86@libero.it
// -----------------------
String.prototype.replace = function()
{
var arg_search, arg_replace, position;
var endText, preText, newText;
arg_search = arguments[0];
arg_replace = arguments[1];
if(arg_search.length==1) return this.split(arg_search).join(arg_replace);
position = this.indexOf(arg_search);
if(position == -1) return this;
endText = this;
do
{
position = endText.indexOf(arg_search);
preText = endText.substring(0, position)
endText = endText.substring(position + arg_search.length)
newText += preText + arg_replace;
} while(endText.indexOf(arg_search) != -1)
newText += endText;
return newText;

}

// ---------------------
// JAK UŻYĆ:
// ---------------------
//originalString = "This is the original fucking text. What the hell are you typing?"
//replacedText = originalString.replace('fuck','***');
//trace("-----------------------------");
//trace("original was: " + originalString);
//trace("replaced is: " + replacedText);



}



i np na MC z polem tekst dajemy coś takiego:

Kod:
onSelfEvent (enterFrame) {
 _root.MC.tekst = _root.MC.tekst.replace('$$','&');
stop();
}


Mam nadzieje że komuś się przyda :)

jeśli ktoś zna przyczynę zbyt dużego użycia procesora w firefoxie przy tego typu rozwiązaniach bardzo proszę o pomoc


Powered by phpBB modified by Przemo © 2003 phpBB Group