07. august 2012 - 23:31Der er
20 kommentarer og 1 løsning
Hjælp til preg_replace
Kære eksperter.
Jeg får en fejl med følgende kode: $row_chat['msg'] = preg_replace($brugerinfo['nick'], "<font color=FF9900><b>$brugerinfo[nick]</b></font>", $row_chat['msg']);
Og kan ikke helt hitte ud af hvordan jeg skal rette det til, fejlen er denne: Warning: preg_replace() [<a href='function.preg-replace'>function.preg-replace</a>]: Delimiter must not be alphanumeric or backslash.
#2: Når arraykaldet står escaped i dobbelte gåseøjne, skal der ikke sættes enkelte omkring arraynøglen. Udenfor gåseøjne har du fuldstændig ret - men der bruger spørgeren dem også =)
#2: php.net har en meget god gennemgang. Prøv at scrolle lidt ned til afsnittet More examples to demonstrate this behaviour. Næsten nederst:
// This will not work, and will result in a parse error, such as: // Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING' // This of course applies to using superglobals in strings as well print "Hello $arr['fruit']"; print "Hello $_GET['foo']";
#7: Jeg er helt enig i, at man ikke bør bruge RegExp, når de kan undgås, hvorfor mit udgangspunkt da også et ganske kort sekund var at bruge str_replace. Det stod ligeså hurtigt klart, at den ikke duer til at løse opgaven med.
Hvad mon der sker med ord som 'kjole', 'skole', 'mole', 'fole', 'nolekstraktion' osv, osv - hvis brugerens nick er 'ole'? *o)
haha same old olebole :) samme "fejl" i begge, om du bruger en delimiter du ikke kan regne med eller jeg bruger et delnavn går vel ud på det samme
løsningen for baarup er at lave et output der ikke skal replaces i, i første omgang og ikke bagefter - men som du selv nævner, når det er på html3 niveau, kan man ikke forvente php'en er på første niveau
Du er nu en sjov snegl. I #11 bruger du masser af ord - som jeg i hvertfald ikke får mening ud af. I #13 er du så pludselig enormt fedtet med ord *LoL*
Ja, '\b' er en word boundary. Det ved jeg jo godt - ellers havde jeg selvfølgelig ikke brugt den ... og derfor var det naturligvis ikke det, jeg spurgte om *o)
Du kan få det på hvilken måde du gerne vil, med eller uden ord - up to you
Og hvis ikke det er sammenligningen mellem mit eksempel der kan acceptere et delord eller dit eksempel der kan acceptere et delnavn, er det vist mere dig der skal forklare dig nærmere - da begge løsninger i sidste ende ikke vil fungere i et produktionsmiljø
End of the day, tror jeg han leder efter at gøre egne kommentarer fede, så løsningen i loopet der skriver chat beskederne ud skal nok inkludere en if sætning der sætter en boolean om navnet skal farves og boldes eller ej
Nej tak, det er ganske passende til at afgøre, at du vrøvler =)
En airbag kan ikke afbøde alle dødsfald ved sammenstød. Da den kan afbøde en rigtig mange, er det naturligvis langt bedre at bruge en airbag, end ikke at bruge én.
Da #7 slipper langt flere fejl igennem end #4, er #4 selvsagt langt bedre end #7 - uagtet, at #4 ikke er perfekt.
Da du afleverer en 'løsning', som fungerer ringere endnu end den, der allerede er afleveret - og som du mente at gøre bedre - er der vel ikke noget galt i at opfordre dig til at tænke dig om =)
Kom to html tags rundt om navnet, som manden helt sikkert har og min rammer og er hurtigere end preg_replace nogen sinde ville drømme om at kunne blive - om hans kode så har en <td> en <div> eller hvad han nu ellers har, må han vide når det ikke er inkluderet i selve spørgsmålet
Summa sumarum, bør det løses på en helt anden måde uden hverken preg_replace der virker nogle gange og str_replace som virker færre gange - men i ethvert produktionsmiljø vil begge aldrig køre i drift, da det skal virke hver gang
Om det så er en fejl der slipper igennem eller to, er mig underordnet - det skal bare virke, virke hver gang og uden undtagelser - og det kan man så håbe spørgeren kan tænke sig til - eller som håbet kunne stille et intelligent ekstra spørgsmål om så man rent faktisk kunne lære manden noget
Med alle de tanker rendende rundt i hovedet, undrer det mig så bare, at du i et påstået forsøg på at rette noget, der ikke fungerede, kommer op med en løsning, som er endnu mere elendig.
Uanset, hvormeget du forsøger at sløre virkeligheden og tørre din dummert af i ærmet på andre, må vi slå fast, at det var en middelsvær dummert *o)
"eller som håbet kunne stille et intelligent ekstra spørgsmål om så man rent faktisk kunne lære manden noget" >> Ja, når du nu ikke kan stille dig selv den slags spørgsmål, må man jo håbe, spørgeren kan =)
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.