Avatar billede spidr Nybegynder
24. juni 2003 - 01:17 Der er 32 kommentarer og
1 løsning

Hvorfor kan jeg ikke lave < og > i en $str = ereg_Replace ?

Jeg laver mine smileys i min chat på denne måde:

$str = ereg_Replace(":)", "<img src=images/glad.gif border=0>", $str);

Men hvorfor kan jeg ikke lave en smiley der indeholder < og > som f.ejs >:) <--ond smiley
Avatar billede ahv Nybegynder
24. juni 2003 - 01:18 #1
Prøv ->

$str = ereg_Replace("\>:)", "<img src=images/glad.gif border=0>", $str);
Avatar billede ahv Nybegynder
24. juni 2003 - 01:21 #2
Den melder ellers ingen fejl her med ->

<?php
$str = ">:)";
$str = ereg_Replace(">:)", "<img src=images/glad.gif border=0>", $str);
echo $str;
?>
Avatar billede jakoba Nybegynder
24. juni 2003 - 01:40 #3
det er i det hele taget ikke en god ide at benytte ereg_replace. når det er en simpel udskiftning af een streng for en anden
brug funktionen  str_replace  så skulle dit < og > og ( problem være væk.
Avatar billede jakoba Nybegynder
24. juni 2003 - 01:42 #4
Avatar billede spidr Nybegynder
24. juni 2003 - 12:13 #5
ahv>>> Nej den laver ikke fejl men den replacer det bare ikke :)
Hvis man skriver >:) i chatten laver den det ikke om :)
og \>:) virker heller ikke :) Har jeg da prøvet :)

JakobA>> >nåja det sage du også sidst :) Det vil jeg så kigge på diag :) Tak :)
Avatar billede spidr Nybegynder
24. juni 2003 - 12:14 #6
damn kom til at tryjje accept ;) Nå så fik du da et par goe points hehe og tak begge to :)
Avatar billede spidr Nybegynder
24. juni 2003 - 12:26 #7
jakoba>>> nu har jeg siddet og læst lidt på det der, og fatter hat af hvordan det virker :) Måske du kunne forklare mig? :)
Avatar billede jakoba Nybegynder
24. juni 2003 - 12:56 #8
<?php
$str = ">:)";
$str = str_Replace(">:)", "<img src=images/glad.gif border=0>", $str);
echo $str;
?>

medmindre du vil være fancy og udnytte det mere fintede:
<?php
$strenge_at_lede_efter = array( ">:)", ":)", ":-))", ":-)" );
$strenge_at_skrive_istedet = array(
    "<img src=images/vred.gif border=0>",
    "<img src=images/glad.gif border=0>",
    "<img src=images/stort_grin.gif border=0>",
    "<img src=images/standardsmiley.gif border=0>"
                                  );
$str = "abcdef:)ghijk>:)lmno:-))pqrs:-)tu";
$str = str_replace( $strenge_at_lede_efter, $strenge_at_skrive_istedet, $str );
echo $str;
?>

mvh JakobA
Avatar billede spidr Nybegynder
24. juni 2003 - 13:06 #9
tusind tak :) Den fanzy model er da red fed men kan godt være lidt svær at hodle styr i når man har over 100 smileys :D
Avatar billede spidr Nybegynder
24. juni 2003 - 13:09 #10
Skal jeg lave hele
$str = ">:)";
$str = str_Replace(">:)", "<img src=images/glad.gif border=0>", $str);
echo $str;
For hver smiley? :S
Kan man ikke nøjes med
$str = str_Replace(">:)", "<img src=images/glad.gif border=0>", $str);
??
Avatar billede spidr Nybegynder
24. juni 2003 - 13:15 #11
Hmm det virker ikke :)
Det virker med de alm. smileys. men ligesom ereg virker det ikke med > :(
Avatar billede jakoba Nybegynder
24. juni 2003 - 13:15 #12
linien med str_replace er alt hvad du behøver for hver slags smiley.
Avatar billede jakoba Nybegynder
24. juni 2003 - 13:22 #13
ja fancy versionen er lidt mere besværlig at holde rede i. men med 100 slags smileys er det besværet værd. eller bliver dit php script meget langsomt.

det er meget besynderligt. kan det passe at det der sker er at ">:)" bliver til "><img src=images/glad.gif border=0>" ?
altså at den udskifter ":)" som du jo selv gav den besked på i linien ovenover :-))

rækkefølgen er vigtig. først ">:)" og bagefter de smileys der er en 'underdel' af den.

mvh JakobA
Avatar billede spidr Nybegynder
24. juni 2003 - 15:43 #14
Nej for
1. smed den med >:) i første række over hovedet :)
og den skriver bare >:) i chatten selv om der er en smiley længere nede i listen der hedder :) så den burde fatksik skriver >og så smileyen :S
Fater slet ikke den skriver >:) :S burde den under ingen omstændigheder skriver? :)
Avatar billede jakoba Nybegynder
24. juni 2003 - 15:49 #15
jo det er korrekt.  prøv at kikke med view source i browseren hvordan kildeteksten ser ud på det sted. måske der er nogen 'usynlige' bogstaver der blander sig ind imellem de andre.

læg evt siden ud og giv et link.
Avatar billede spidr Nybegynder
24. juni 2003 - 16:24 #16
Mig der har skrevet forkert hehe :)
nu laver den en >og en smiley
men du kan jo selv se på www.goog.dk/chat
Avatar billede jakoba Nybegynder
24. juni 2003 - 16:44 #17
hvis du sorterer dine smileys efter hvor lange de er (hvor mange bogstaver) og så altid sørger for at udskifte de længste først, så burde det virke. dvs
først  str_replace( ">:)", ...
og så:  str_replace( ":)", ...
hvis den lille står først vil den jo bleve set og udskiftet og så står der ikke >:) i strengen mere.

mvh JakobA
Avatar billede spidr Nybegynder
24. juni 2003 - 16:56 #18
jamen går det ikke for har jeg nemlig gjort :)
Kan det være fordi at ereg_Replace kommer før str_replace?
Avatar billede jakoba Nybegynder
24. juni 2003 - 17:27 #19
php udføres i den rækkefølge det står

$i = 2 + 2;  // giver 4
$i = $i * 2;  // giver 8 fordi der stod 4 i $i først.

det er en sekvens og funktionskald kan ikke overhale hinanden, de udføres i rækkefølge.

Men hvorfor i alverden står der overhovedet ereg_replace nogen steder i din fil?

Må jeg se ca 10 linier af din php kode før og efter str_replace( ">:)", ...

mvh JakobA
Avatar billede spidr Nybegynder
24. juni 2003 - 17:54 #20
Hmm der står ereg fordi jeg ikke liige gad uskifte det hele :D:D Men det vil jeg gøre nu også skriver jeg tilbage når det er gjort :)
Avatar billede spidr Nybegynder
24. juni 2003 - 19:32 #21
Hvad er det:
$str = "abcdef:)ghijk>:)lmno:-))pqrs:-)tu"; <--den gør godt for.
<---jeg har nemlig måtte slette den da den lave fejl :)

Men nu da jeg har skiftet det hele ud (og har skrevet >:) før :) så tager den aligevel og laver en > Og en glad smiley :)
Avatar billede spidr Nybegynder
24. juni 2003 - 19:34 #22
og foresten den ser sådan her ud:

function format($str) {
    if (strlen($str) > 512) { $str = substr($str,0,512); }
    $str = stripslashes($str);
    $str = htmlspecialchars($str);
$strenge_at_lede_efter = array( ":((", "!:(", ">:(", ">:)", ">:D", "o:)", "!angel", "!happy", ";)", "!brain", "8)", "!:D", ":D", "!dance", "!dod", "!doh", "!ele", "!think", "!map", "!fu", "!fu2", "!fyfy2", "/fyfy", "!gen", ":)", "!group", "!gud", "!guns", "!hmm2", ":/", "!hmm", ":I", ":(", ":K", "!klap2", "!klap", "!love2", "!love", "!mis", "!mur", ":--)", "!node", "8-)", "!noway", ":O", "!op", "!:P", ":P", "!party2", "!party", "!plz", "!pray", "!puke", "!rose", "!:S", ":S", "!shh", "!skummel", "!smoke", "!sort", "!stop", "!synger2", "!synger", "!!!", "???", "!urgh", "!inv", "!vio", ":===O", "w000t", "w00t", ":X", "o<:D", "zzzz", "zzz" );
$strenge_at_skrive_istedet = array(
"<img src=images/tosad.gif border=0>",
"<img src=images/sur.gif border=0>",
"<img src=images/ond.gif border=0>",
"<img src=images/ond2.gif border=0>",
"<img src=images/ond5.gif border=0>",
"<img src=images/angel.gif border=0>",
"<img src=images/angel2.gif border=0>",
"<img src=images/birthday.gif border=0>",
"<img src=images/blink.gif border=0>",
"<img src=images/brain.gif border=0>",
"<img src=images/cool.gif border=0>",
"<img src=images/d3.gif border=0>",
"<img src=images/d2.gif border=0>",
"<img src=images/dance.gif border=0>",
"<img src=images/dod.gif border=0>",
"<img src=images/doh.gif border=0>",
"<img src=images/ele.gif border=0>",
"<img src=images/think.gif border=0>",
"<img src=images/folder.gif border=0>",
"<img src=images/fu2.gif border=0>",
"<img src=images/fu.gif border=0>",
"<img src=images/fyfy2.gif border=0>",
"<img src=images/fyfy.gif border=0>",
"<img src=images/genert.gif border=0>",
"<img src=images/glad.gif border=0>",
"<img src=images/group.gif border=0>",
"<img src=images/gud.gif border=0>",
"<img src=images/guns.gif border=0>",
"<img src=images/hmm3.gif border=0>",
"<img src=images/hmm2.gif border=0>",
"<img src=images/hmm.gif border=0>",
"<img src=images/i.gif border=0>",
"<img src=images/ked.gif border=0>",
"<img src=images/kiss.gif border=0>",
"<img src=images/klap2.gif border=0>",
"<img src=images/klap.gif border=0>",
"<img src=images/love.gif border=0>",
"<img src=images/love2.gif border=0>",
"<img src=images/mis.gif border=0>",
"<img src=images/mur.gif border=0>",
"<img src=images/naese.gif border=0>",
"<img src=images/node.gif border=0>",
"<img src=images/nord.gif border=0>",
"<img src=images/noway.gif border=0>",
"<img src=images/o.gif border=0>",
"<img src=images/op.gif border=0>",
"<img src=images/p3.gif border=0>",
"<img src=images/p.gif border=0>",
"<img src=images/party2.gif border=0>",
"<img src=images/party.gif border=0>",
"<img src=images/plzz.gif border=0>",
"<img src=images/pray.gif border=0>",
"<img src=images/puke.gif border=0>",
"<img src=images/rose.gif border=0>",
"<img src=images/s2.gif border=0>",
"<img src=images/s.gif border=0>",
"<img src=images/shh.gif border=0>",
"<img src=images/skummel.gif border=0>",
"<img src=images/smoke.gif border=0>",
"<img src=images/sort.gif border=0>",
"<img src=images/stop.gif border=0>",
"<img src=images/synger2.gif border=0>",
"<img src=images/synger.gif border=0>",
"<img src=images/tegn.gif border=0>",
"<img src=images/tegn2.gif border=0>",
"<img src=images/urgh.gif border=0>",
"<img src=images/usynlig.gif border=0>",
"<img src=images/vio.gif border=0>",
"<img src=images/w0000t.gif border=0>",
"<img src=images/w000t.gif border=0>",
"<img src=images/w00t.gif border=0>",
"<img src=images/x.gif border=0>",
"<img src=images/xmasd.gif border=0>",
"<img src=images/zzzz.gif border=0>",
"<img src=images/zzz.gif border=0>" );
$str = str_replace( $strenge_at_lede_efter, $strenge_at_skrive_istedet, $str );
    $str = ereg_replace("'","´",$str);
    $str = ereg_replace("(([Ff]|[Hh][Tt]){1}[Tt][Pp]://[a-zA-Z0-9@:%_.~#-\?&]+)", "<a href=\"\\1\" target=_blank CLASS=\"link-i-toppen\">\\1</a>", $str);
    $str = ereg_replace("([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)","<a href=\"mailto:\\1\">\\1</a>",$str);
    $str = ereg_replace("\__([^\|]+)\__","<b> \\1 </b>",$str);
    $str = ereg_replace("\_([^\|]+)\_","<i> \\1 </i>",$str);
    $str = ereg_replace("\___([^\|]+)\___","<strong> \\1 </strong>",$str);
    return $str;
}
Avatar billede spidr Nybegynder
24. juni 2003 - 19:40 #23
En sidste ting :)
o:) virker fint :)
det er kun dem med > og < der ikke virker :(
Avatar billede jakoba Nybegynder
24. juni 2003 - 19:47 #24
He he.

kik her:  http://dk2.php.net/htmlspecialchars
og ryk så linien
      $str = htmlspecialchars($str);
ned til EFTER du har lavet din str_replace

den linie laver dine tegn '<' og '>' om til html-entities '&lt;' og '&gt;' og så er der jo ikke længere nogen '<' eller '>' tegn i din streng.

mvh JakobA
Avatar billede jakoba Nybegynder
24. juni 2003 - 19:54 #25
men en smiley der begynder med '>' eller slutter med '<' er så også lidt farlig. hvis der fx står
<b>hejsan</b>:(<i> igen igen</i>
så står der jo faktisk '>:(<' (vred djævel med fuldskæg) i den streng. og hvis det bliver replaced bliver html-kommandoerne ødelagt fordi de har mistet ders slutning eller begyndelse.
Avatar billede spidr Nybegynder
24. juni 2003 - 20:21 #26
og ryk så linien
      $str = htmlspecialchars($str);
ned til EFTER du har lavet din str_replace
<--hvis jeg gør det kommer der ikke nogle smiley så kommer html koden for smileyen bare (<img src=smiley.gif>)
Avatar billede spidr Nybegynder
24. juni 2003 - 20:23 #27
men en smiley der begynder med '>' eller slutter med '<' er så også lidt farlig. hvis der fx står
<b>hejsan</b>:(<i> igen igen</i>
så står der jo faktisk '>:(<' (vred djævel med fuldskæg) i den streng. og hvis det bliver replaced bliver html-kommandoerne ødelagt fordi de har mistet ders slutning eller begyndelse.<--ja det havde jeg slet ikke tænkt på :( stupid mee :) meen er jo ikke så tit man laver en vred jevel lige efter noget kursivt eller lige før :) men du har ret :)
Avatar billede spidr Nybegynder
24. juni 2003 - 20:25 #28
Weee det virker :D:D
, "&gt;:(" <---sådan der :D:D
Avatar billede jakoba Nybegynder
24. juni 2003 - 20:29 #29
Ja det er en liegeså god måde at gøre det :-)
Avatar billede spidr Nybegynder
24. juni 2003 - 20:56 #30
hehe :) tak for hjælpen hmm du har ikke forstand på blinke fri chats og gider hjælpe mig med min ven? :D:D
Avatar billede spidr Nybegynder
24. juni 2003 - 20:56 #31
ven = vel
Avatar billede jakoba Nybegynder
24. juni 2003 - 21:09 #32
Dem er der mange andre der ved en masse om, og jeg synes de er totalt uinterresante :-)
Avatar billede spidr Nybegynder
24. juni 2003 - 21:19 #33
Trist :(
For der er ingen (der gider hjælpe) der kan finde ud af at få den blink fri :(
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