Jede Ziffer ersetzen durch Bild
Gero
- php
-1 Daniel2 Tobias Kloth0 Gero0 Dennis0 Vinzenz Mai0 Dennis
0 dedlfix
0 Daniel
2 Dennis2 MudGuard0 Gero
Hallo,
ich möchte eine Zahl durch Bilder ersetzen.
z.B. so:
$zahl = 1234.99;
=> $zahl_bilder="<img src='1.gif'><img src='2.gif'> ......";
Wie mach' ich das? Reguläre Ausdrücke?
Grüße
Gero
Ahoi Gero,
Wie mach' ich das? Reguläre Ausdrücke?
am besten wirds wohl sein wenn du die Zahl als string betrachtest. den
string dann z.B. mit split http://de2.php.net/manual/de/function.split.php
und dieses array gehst du dann mit einer foreach-schleife durch
MfG
\ / \ /´¯.l.¯
\ /Hallo Gero,
$zahl = 1234.99;
=> $zahl_bilder="<img src='1.gif'><img src='2.gif'> ......";
Wie mach' ich das?
mit einem einfachen str_replace() z.B.:
$von = array(1,2,3,4,5,6,7,8,9,0);
$nach = array('<img src="1.gif" alt="1">', '<img src="2.gif" alt="2">', [...], '<img src="
0\.gif" alt="0">');
$zahl_bilder = str_replace($von, $nach, $zahl);
Grüße aus Nürnberg
Tobias
Hallo Tobias,
$von = array(1,2,3,4,5,6,7,8,9,0);
$nach = array('<img src="1.gif" alt="1">', '<img src="2.gif" alt="2">', [...], '<img src="
0.gif" alt="0">');
$zahl_bilder = str_replace($von, $nach, $zahl);
So habe ich es schon versucht, es funktioniert aber leider nicht - es wird immer nur eine 0 zurückgegeben.
Gruß
Gero
Hi Gero,
So habe ich es schon versucht, es funktioniert aber leider nicht - es wird immer nur eine 0 zurückgegeben.
Also ist PHP doch nicht so schlecht, wie es oft beredet wird :-) In Visual Basic oder so, wäre das AFAIK gegangen *g*
MfG, Dennis.
Hallo
Also ist PHP doch nicht so schlecht, wie es oft beredet wird :-) In Visual Basic oder so, wäre das AFAIK gegangen *g*
Nö. [1] *bg*
Freundliche Grüße
Vinzenz
Es sei denn, Du weist dem Array den Datentyp Variant zu. Dann weißt Du aber auch, dass Du das willst. In ein Integer-Array einen String reinschreiben zu wollen, löst einen Laufzeitfehler aus.
Hi Vinzenz,
In Visual Basic oder so, wäre das AFAIK gegangen *g*
Nö. [...] In ein Integer-Array einen String reinschreiben zu wollen, löst einen Laufzeitfehler aus.
Na gut - ich bin nicht so der VB Freak ;-) Aber unser Informatiklehrer erzählte uns mal was, dass man einstellen könnte, ob VB die Typen selbständig erkennt und umwandelt oder nicht.
MfG, Dennis.
Hallo Dennis,
Nö. [...] In ein Integer-Array einen String reinschreiben zu wollen, löst einen Laufzeitfehler aus.
Na gut - ich bin nicht so der VB Freak ;-)
das bin ich auch nicht. Ich bin kein Freak :-)
Aber unser Informatiklehrer erzählte uns mal was, dass man einstellen könnte, ob VB die Typen selbständig erkennt und umwandelt oder nicht.
langsam, langsam. Du wirfst Äpfel und Birnen durcheinander.
In vielen Fällen kann eine Konvertierung implizit erfolgen, so kannst Du z.B. mit dem Zeichenkettenverkettungsoperator eine Zahl und eine Zeichenkette verknüpfen. Das Resultat ist eine Zeichenkette, die Zahl wurde implizit zur Zeichenkette umgewandelt. Das ist übrigens in vielen anderen Programmiersprachen genauso und kein spezielles Feature von Basic oder gar Visual Basic.
Das ist etwas anderes als einem Arrayelement eines Integer-Arrays eine Zeichenkette zuzuweisen. Bitte beachte, dass in Basic ein Array eine Datenstruktur ist, die Elemente _gleichen_ Datentyps zusammenfasst.
Es gibt ganz speziell die Konvertierungsfunktionen, die eine explizite Typumwandlung durchführen, sofern machbar, z.B. CInt(), CDouble(), CStr(), ...
Freundliche Grüße
Vinzenz
Hallo Vinzenz,
Zeichenkettenverkettungsoperator
Tolles Wort.
Bringst du das nach drei Bier noch fehlerfrei über die Lippen? ;-)
So long,
Martin
Hi Martin,
Zeichenkettenverkettungsoperator
Tolles Wort.
*g*
Bringst du das nach drei Bier noch fehlerfrei über die Lippen? ;-)
Ich komme schon nach zwei Bier in Schwierigkeiten :-)
Freundliche Grüße
Vinzenz
echo $begrüßung;
So habe ich es schon versucht, es funktioniert aber leider nicht - es wird immer nur eine 0 zurückgegeben.
Also ist PHP doch nicht so schlecht, wie es oft beredet wird :-) In Visual Basic oder so, wäre das AFAIK gegangen *g*
Der Fehler muss woanders liegen, denn ich bekomme das gewünschte Ergebnis auch mit einem float.
Vielleicht ist PHP aussagewilliger, wenn das error_reporting auf E_ALL gestellt wird.
Übrigens, ein strtr() ist hier noch etwas eleganter, da man sich hier ein Array spart.
echo "$verabschiedung $name";
Ahoi Gero,
$von = array(1,2,3,4,5,6,7,8,9,0);
$nach = array('<img src="1.gif" alt="1">', '<img src="2.gif" alt="2">', [...], '<img src="
0.gif" alt="0">');
$zahl_bilder = str_replace($von, $nach, $zahl);
> So habe ich es schon versucht, es funktioniert aber leider nicht - es wird immer nur eine 0 zurückgegeben.
mach mal ein
var\_dump($zahl);
und evt.
$von = array("1","2","3","4","5","6","7","8","9","0");
MfG
--
Alle Angaben wie immer ohne Gewähr
\ \ / / \ \ / /
\ \ / / \ \ / /
\ /´¯.l.¯`\ / \ /´¯.l.¯`\ /
| l .l. (¯ '\ /' ¯) .l. 1 |
l l .l. \ \ / / .l. 1 1
l l´¯.l´¯.l \ '| |' / 1.¯´1.¯´1 1
\ /
Hi Tobias,
mit einem einfachen str_replace()
Ich weiß nicht genau, wie PHP das handhabt, wenn du in einem Zahlenwert Zeichenketten ersetzen willst - in einer richtigen[tm] Programmiersprache jedenfalls müsstest du die Zahl erst in einen String umwandelt. Ließe sich in PHP mit strval() machen - für einen sauberen Programmierstil sicherlich zu empfehlen.
MfG, Dennis.
Hi,
$von = array(1,2,3,4,5,6,7,8,9,0);
$nach = array('<img src="1.gif" alt="1">', '<img src="2.gif" alt="2">', [...], '<img src="0.gif" alt="0">');
$zahl_bilder = str_replace($von, $nach, $zahl);
Ich find das ziemlich unschön, zehnmal fast identischen Code hinzuschreiben (die 10 img im Array).
Ganz ohne Arrays und doppelten Code:
`$zahl_bilder = preg_replace('/\d/', '<img src="\0.gif" alt="\0">', $zahl);`{:.language-php}
cu,
Andreas
--
[Warum nennt sich Andreas hier MudGuard?](http://www.Mud-Guard.de/)
[Schreinerei Waechter](http://www.schreinerei-waechter.de/)
Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
Hi Andreas,
$zahl_bilder = preg_replace('/\d/', '<img src="\0.gif" alt="\0">', $zahl);
es kann so einfach sein :)
Danke!
Gruß
Gero