12. januar 2004 - 01:36Der er
23 kommentarer og 1 løsning
"klip" en string i stykker
Ved der er flere spørgsmål med dette, men jeg har nu stadig problemr. Jeg har en chat og der vil jo sikkert dukke en spam besked op før eller siden så jeg arbejde på problemet nu. Pt. arbejder jeg med følgende:
$row[text] = wordwrap($row[text], 46, "<br>", 2);
men den gør det ikke korrekt. Jeg vil gerne havde den til at klippe beskederne i stykker hvis det er en lang @@@@@@@@@@@@ osv. ikke hvis det bare er en masse ord der fylder 46 altså: dette er en test osv osv.
Fint fint nak-m ... nu blev det da ihvertfald bedre! Men der er stadig et mindre problem. Når det er en "spam" string som @@@@@@@@@@ så gør den det på følgende måde:
Det skulle ganske simpelt løse problemet at skrive i stedet for normalt mellemrum. Jeg har prøvet at bruge nowrap="nowrap", white-space: pre;, white-space: nowrap; bl.a., men det ser ud til at IE har et problem med denne slags (de virker dog i kvalitetsbrowsere som mozilla :)
Den eneste umiddelbare løsning, og den simpleste, er derfor at bruge
Nej, f.eks. mit foreslag der vil fjerne @, så laver du enten: $row[tekst] = str_replace("@", "", $row[tekst]); $row[tekst] = str_replace("@", " ", $row[tekst]);
...eller bruger preg_replace eller hvad du nu vil... Sådan set samme model :)
Ja men som du selv påpegede så var @ kun et eksempel... en spam msg kan jo være hvilket som helst tegn... det var mere fordi @ fyldere mere end de andre :)
jaw: mener du en funktion der bare fjerner hele strengen eller bytter karaktererne ud med white-space :) det kan da ikke hjælpe meget. Man kan selvfølgelig lave en funktion, der laver white-space (af en art) efter et hvis antal karakterer, men jeg tror ikke på, at det kan blive særligt vellykket.
Jamen, hvis det er spam af lame tegn, så er det vel fint at det bare forsvinder? Og måske du med fordel kunne svare mange indlæg, ved at skrive et i stedet for 3 :)
Jeg synes enten han/hun skal anvende ekspertens metode eller en funktion, der laver white-space efter et hvis antal karakterer. Hvilken er op til talker, men jeg tror ikke, man kommer tættere på en løsning under disse omstændigheder? :)
nak-m>> Sammenhægende ord over en hvis bredde :) vel de færste ord der er på for eksempel 46 tegn ;) det jeg vil "betegne" for spam... men jeg kan godt li den metode med: $row[text] = ereg_replace("([^ ]{46})","\\1<br>",$row[text]);
Den der opfyler det mest lige nu :) så tak for hjælpen begge 2...
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.