Schrift
[thread]12261[/thread]

Groß- und Kleinschreibung ignorieren



<< |< 1 2 >| >> 16 Einträge, 2 Seiten
Gast Gast
 2008-07-27 10:41
#112810 #112810
Hi,

ich habe folgendes Problem:

Ich habe hier einen Handler zum Umwandeln von geschriebenen Smileys. Funktioniert soweit auch ganz gut jedoch wird hier die Groß und Kleinschreibung leider nicht ignoriert, was sehr nervig sein kann. Hier einmal der Handler:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
        my($self,$main,$text) = @_;
        
        return if $main->{current_user}{nosmileys};
        
        if (!exists($self->{smileys}))
        {
                $self->{smileys} = {};
                foreach my $smiley (@{$main->{settings}{smileys}})
                {
                        $smiley = $smiley;
                        my $image = undef;
                        foreach (@$smiley)
                        {
                                if (!defined($image))
                                {
                                        $image = $_;
                
                                        my ($width,$height);
                                        ($width,$height) = @{$main->{settings}{images}{$image}} if defined($main->{settings}{images}{$image});
                                        $width = (defined($width) ? " width=$width": "");
                                        $height = (defined($height) ? " height=$height": "");
                
                                        my $alt = $main->toHTML($smiley->[1]);
                                        $image = "<img src=\"$main->{settings}{urls}{imagesurl}$image.gif\" border=0$width$height alt=\"$alt\">";
                                }
                                elsif ($_ ne '/hidden/')
                                {
                                        $self->{smileys}{$main->toHTML($_)} = $image;
                                }
                        }
                }
        }


Ich hoffe, jemand kann mir helfen.
jan
 2008-07-27 12:13
#112811 #112811
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
wie sieht denn die definition deiner smileys aus?
und wo findet das ersetzen statt? ich seh zwar, dass du das img-tag erstellst, aber wo ersetzt es den eigentlichen smiley?

und zeile 10 kannst du rausnehmen, denke ich ;)

>10: $smiley = $smiley;
LanX-
 2008-07-27 15:25
#112812 #112812
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
Code (perl): (dl )
16: $image = lc $_;


???
betterworld
 2008-07-27 17:34
#112820 #112820
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Hm, will man denn die Groß- und Kleinschreibung gleichsetzen? ":-D" und ":-d" sehen zum Beispiel nicht gerade ähnlich aus.

Aber wo wir gerade schon so typographisch sind, werde ich mal den Bindestrich im Titel ("Groß- und Kleinschreibung") ergänzen. Siehe auch Ergänzungsstrich (eine lang vergessene Tugend).
pq
 2008-07-27 18:04
#112822 #112822
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
betterworld+2008-07-27 15:34:01--
Siehe auch Ergänzungsstrich (eine lang vergessene Tugend).

hm, ein bug im poard? der link erscheint nur als
Code: (dl )
http://de.wikipedia.org/wiki/Erg
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
betterworld
 2008-07-27 19:18
#112827 #112827
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Quote
hm, ein bug im poard? der link erscheint nur als
Code: (dl )
http://de.wikipedia.org/wiki/Erg

Oh, tatsächlich. Danke für den Hinweis. Ich habe den Link mal durch einen (ohne Umlaute) ersetzt, der funktioniert.
Gast Gast
 2008-07-27 23:56
#112830 #112830
Die Smileys werden in einem Array hinterlegt und mittels $main->{$settings}{smileys} extrahiert:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
	smileys => [
[ 'smiley1', ':))', ':-))' , ':o))' ],
[ 'smiley', ':)' , ':-)' , ':o)' ],
[ 'wink', ';)' , ';-)' , ';o)' ],
[ 'cheesy', ':D' ],
[ 'grin', ';D' ],
[ 'angry', '):(' ],
[ 'sad', ':-(' , ':(' , ':o(' ],
[ 'cool', '8)' ],
[ 'huh', '???' ],
[ 'rtfm', ':rtfm' ],
[ 'shocked', ':-O' ],
[ 'smiley2', ':-o' ],
[ 'smiley3', ':-P' , ':oP' ],
[ 'smiley4', ':-I' , ':oI' ],
[ 'smiley5', ':-]' , ':o]' ],
[ 'smiley6', ':-[' , ':o[' ],
[ 'smiley7', ':crazy' ],
[ 'smiley8', ':dream' ],
[ 'smiley9', ':shy' ],
[ 'smiley10', ':tasty' ],
[ 'smiley11', ':o' ],
[ 'smiley12', 'O:-)' ],
[ 'smiley13', ':tea', ':coffee' ],
[ 'fist', ':fist' ],
[ 'kiss', ':kiss' ],
],
Gast Gast
 2008-07-27 23:57
#112831 #112831
Ups, meinte natürlich $main->{settings}{smileys}

:D
betterworld
 2008-07-28 00:47
#112832 #112832
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Und funktioniert das, was LanX- gesagt hat?

Mir kommt diese Verzweigung da innerhalb der inneren Schleife etwas umstaendlich vor. Was Du tust, ist da ja nur, dass das erste Element in dem Array in $image gespeichert wird.
So waere es uebersichtlicher:
Code: (dl )
1
2
3
4
5
6
my ($image, @texte) = @$smiley;
$image = lc $image;

foreach (@texte) {
# tu was...
}

(Das "lc" wandelt den String in Kleinbuchstaben um, das ist wohl das, was Du brauchst (und auch das, was LanX- vorgeschlagen hat.)
Gast Gast
 2008-07-29 03:57
#112843 #112843
Hi,

nein, das funktioniert nicht. Es ändert sich eigentlich überhaupt nichts. :D wird als Smiley angezeigt und :d als Text. ich möchte ja letztlich bewirken, dass Beides funktioniert. Deswegen die Ignorierung der Groß- und Kleinschreibung.

@betterworld

Eine Änderung des Ganzen ist nicht so einfach. Dieses Array wird in einer Konfigurationsdatei gespeichert und dann letztlich wie oben beschrieben weiterverarbeitet.

$image ist auch weniger das Problem, da $image ja theoretisch einfach nur $smiley->[0] beinhaltet (den Dateinamen ohne Endung).

Der Smileytag ist dementsprechend also $smiley->[1]. Ändere ich jedoch $smiley->[1] in lc $smiley->[1], passiert ebenso wenig.

:(
<< |< 1 2 >| >> 16 Einträge, 2 Seiten



View all threads created 2008-07-27 10:41.