Avatar billede computerphper Nybegynder
26. september 2003 - 18:48 Der er 21 kommentarer og
1 løsning

problemer med ereg_replace

Hey!
Jeg har brugt ereg_replace til at erstatte bokstaver med et billede af en font, for at få en anden skrifttype (som de fleste brugere sikkert ikke har).

Mit script ser sådan herud:

<html>
<head>
<link rel=stylesheet href=../include/style.css type=text/css>
</head>
<?
$undonetext = 'Watup there?:)<br>
I was a lil\' bored, so I decided to make this website :S - Feel free to check it out ;)';
$text = reg_replace("a", "<img src=../letters/a.jpg>", "$undonetext");
$text = reg_replace("b", "<img src=../letters/b.jpg>", "$undonetext");
$text = reg_replace("c", "<img src=../letters/c.jpg>", "$undonetext");
$text = reg_replace("d", "<img src=../letters/d.jpg>", "$undonetext");
$text = reg_replace("e", "<img src=../letters/e.jpg>", "$undonetext");
$text = reg_replace("f", "<img src=../letters/f.jpg>", "$undonetext");
$text = reg_replace("g", "<img src=../letters/h.jpg>", "$undonetext");
$text = reg_replace("h", "<img src=../letters/h.jpg>", "$undonetext");
$text = reg_replace("i", "<img src=../letters/i.jpg>", "$undonetext");
$text = reg_replace("j", "<img src=../letters/j.jpg>", "$undonetext");
$text = reg_replace("k", "<img src=../letters/k.jpg>", "$undonetext");
$text = reg_replace("l", "<img src=../letters/l.jpg>", "$undonetext");
$text = reg_replace("m", "<img src=../letters/n.jpg>", "$undonetext");
$text = reg_replace("o", "<img src=../letters/o.jpg>", "$undonetext");
$text = reg_replace("p", "<img src=../letters/p.jpg>", "$undonetext");
$text = reg_replace("r", "<img src=../letters/r.jpg>", "$undonetext");
$text = reg_replace("s", "<img src=../letters/s.jpg>", "$undonetext");
$text = reg_replace("t", "<img src=../letters/t.jpg>", "$undonetext");
$text = reg_replace("u", "<img src=../letters/u.jpg>", "$undonetext");
$text = reg_replace("v", "<img src=../letters/v.jpg>", "$undonetext");
$text = reg_replace("w", "<img src=../letters/w.jpg>", "$undonetext");
$text = reg_replace("x", "<img src=../letters/x.jpg>", "$undonetext");
$text = reg_replace("y", "<img src=../letters/y.jpg>", "$undonetext");
$text = reg_replace("z", "<img src=../letters/z.jpg>", "$undonetext");
echo "$text";
?>
</html>

Men den gider ikke erstatte bokstaverne hvis jeg sætter mere end en ereg_replace ind? :\
Aner ik hva der r galt? Er det er max. for hvor mange ereg_replace man kan bruge på én side?
Avatar billede hmortensen Nybegynder
26. september 2003 - 18:54 #1
$text = str_replace("a", "<img src=../letters/a.jpg>", $undonetext);
Avatar billede computerphper Nybegynder
26. september 2003 - 18:54 #2
Avatar billede computerphper Nybegynder
26. september 2003 - 18:55 #3
duer stadig ik med str_replace :\
Avatar billede squashguy Nybegynder
26. september 2003 - 18:57 #4
$undonetext = reg_replace("a", "<img src=../letters/a.jpg>", $undonetext);
...

jeg har ændret din $text variabel
Avatar billede hmortensen Nybegynder
26. september 2003 - 18:57 #5
bahhhh, så lige hvorfor...

$text = str_replace("a", "<img src=../letters/a.jpg>", $undonetext);

2 forskellige variabler. du kalder den pludselig text, men i næste replace linie vil du stadig bruge undonetext variablen.
$undonetext = reg_replace("y", "<img src=../letters/y.jpg>", "$undonetext");
Avatar billede erikjacobsen Ekspert
26. september 2003 - 18:57 #6
Du skal bare:

$a['a']='<img src=../letters/a.jpg>';
$a['b']='<img src=../letters/b.jpg>';
$a['c']='<img src=../letters/c.jpg>';
$a['d']='<img src=../letters/d.jpg>';
$a['e']='<img src=../letters/e.jpg>';
$a['f']='<img src=../letters/f.jpg>';
$a['g']='<img src=../letters/g.jpg>';
$a['h']='<img src=../letters/h.jpg>';

$text = "abekattene";

$text = strtr($text,$a);

print $text;


....fyld selv resten i
Avatar billede squashguy Nybegynder
26. september 2003 - 18:58 #7
du overskriver $text hver gang du laver et nyt kald til reg_replace...
Avatar billede squashguy Nybegynder
26. september 2003 - 18:59 #8
svar..
Avatar billede computerphper Nybegynder
26. september 2003 - 19:01 #9
prøvr lige jeres svar..
Avatar billede computerphper Nybegynder
26. september 2003 - 19:03 #10
Taaaaak erik :))
Dit svar virkede.. så ik ud til at squashguy's duede :\
Avatar billede erikjacobsen Ekspert
26. september 2003 - 19:04 #11
squashguy påpegede en åbenlys fejl, men uanset hvad ville den løsning
ikke sikre at fx "i" i et <img ..> tag fra fx "a" ville bliver erstattet
igen. (øh bø - ikke den mest klare formulering *g*)
Avatar billede stigc Nybegynder
26. september 2003 - 19:05 #12
Burde du ikke i stedet for;

x = "din tekst";
s = "";
for (i=0; i<x.length; i++)
Avatar billede erikjacobsen Ekspert
26. september 2003 - 19:07 #13
Det er også (en begyndelse på) en løsning, men strtr gør arbejdet for os,
måske endda lidt hurtigere ;)
Avatar billede stigc Nybegynder
26. september 2003 - 19:09 #14
Og her kommer hvad jeg mente (psuedo kode!)
String x = "din tekst";
String s = "";
String c = "";

for (int i=0; i<x.length; i++) {
c = substr(x, i, 1)
s += "<img src=../letters/" + c + ".jpg>'";
}
Avatar billede erikjacobsen Ekspert
26. september 2003 - 19:15 #15
Du mangler at tage højde for at han fx ikke har et billede for mellemrum (og
for punktum og ....så videre)
Avatar billede stigc Nybegynder
26. september 2003 - 19:49 #16
Ja, men man må godt tænke selv. Du mangler alle bogstaver over 'h' :)
Avatar billede stigc Nybegynder
26. september 2003 - 19:51 #17
også mangler der også quotes rundt om billedestien, osv. osv.
Avatar billede stigc Nybegynder
26. september 2003 - 19:52 #18
billedstien
Avatar billede erikjacobsen Ekspert
26. september 2003 - 19:54 #19
*g* - de quotes er faktisk strengt taget ikke nødvendige lige her.
Ups, er der flere bogstaver i alfabetet? Jeg hørte vist ikke ordentligt
efter i skolen.
Avatar billede stigc Nybegynder
26. september 2003 - 20:06 #20
ok da, lige indtil der er et mellerum eller andet guf i stien. Enig.
Avatar billede hmortensen Nybegynder
26. september 2003 - 21:25 #21
nu bruger man jo ikke mellemrum og andre mærkelige ting i stier/navne, og helst kun små bogstaver. det andet er opreklameret pjat
Avatar billede stigc Nybegynder
26. september 2003 - 22:03 #22
hindu_skp >> Det er der nu mange der bruger, så brug nu bare " for at være sikker. Så vidt jeg ved behøver man ikke quote så længe man bruger tegene 0-9 a-z og noge få andre specieltegn, hvor imellemem "_", "/" og andre ikke indgår!

Og på den mådde, så overholder vi jo også XML standarden.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester