Avatar billede hagger Nybegynder
18. december 2009 - 16:33 Der er 15 kommentarer

Slette ord der er for lange

Hejsa

Jeg har en tagwall, som der ind i mellem bliver spammet i. Jeg tænkte om man ikke på en måde kan slette ord der er over en vis længde? Eller gøre så hvis et ord i bedskeden er for lang, så melder man fejl, så det ikke kommer i databasen? Fordi når ordet er for langt strækker det ud i mit design..

Hilsen Hagger
Avatar billede repox Seniormester
18. december 2009 - 17:09 #1
Hvordan vil du afgøre hvornår et ord er eller en besked i din tagwall er for lang til at du vil acceptere den? Det betyder jo reelt set at du skal objektivt afgøre at visse indlæg (selv de seriøse) bliver afvist fordi du - ud fra en matematisk begrænsning - vil sortere dem fra.
Avatar billede hagger Nybegynder
18. december 2009 - 17:14 #2
Nu er der jo ingen seriøse indlæg der har et ord på fx 75 tegn, da der ikke er et ord på så mange tegn..
Avatar billede repox Seniormester
18. december 2009 - 17:19 #3
Se, det var jo en specifikation som du udelod...



<?php

  function testString( $string, $maxLen = 75 )
  {
    $parts = preg_split("/ /", $string);
    foreach($parts as $part)
    {
      if(strlen($part) > $maxLen)
        return false;
    }

    return true;
  }

  // Brug funktionen:
  if( testString($indhold_fra_kommentar) )
  {
    //gem data hvis der ikke var ord der overskred grænsen på 75 tegn
  }
?>

Avatar billede hagger Nybegynder
18. december 2009 - 17:21 #4
Troede jeg havde skrevet det.. Men tak for hurtigt svar.. Jeg tester lige om det nu også virker ;)
Avatar billede majbom Novice
18. december 2009 - 19:12 #5
nu ved jeg ikke om det er tilladt at poste links på din tagwall, men der kan man jo godt komme ud for 75 karakterer - men så kunne man selvfølgelig henvise sin gæster til makeashorterlink.com eller anden service
Avatar billede repox Seniormester
18. december 2009 - 19:16 #6
Det var også min pointe oprindeligt...
Der findes bedre metoder at sikre sig mod spam på.
Avatar billede wanze Nybegynder
18. december 2009 - 19:32 #7
repoxs kode er fint, men erstat lige
  $parts = preg_split("/ /", $string);

med
repoxs kode er fint, men erstat lige
  $parts = explode(" ",$string;


Det er spild af ressource at rive regex op ad lommen pga. noget så simpelt, når explode()-funktionen kan gøre det samme, men uden at bruge så mange ressourcer.
Avatar billede hagger Nybegynder
18. december 2009 - 23:26 #8
Tak for jeres svar.. men det er jo ikke kun fordi jeg vil fjerne spam, jeg bliver bare nødt til at fjerne alle lange ord, da de ellers strækker i mit design..
Avatar billede wanze Nybegynder
19. december 2009 - 00:11 #9
Det er der mange andre løsninger på, fx CSS: word-wrap, har lavet et eksempel her: http://derfor.dk/tests/wordwrap.htm

Bare smid style="word-wrap: break-word;" på din <div>.
Avatar billede intenz Novice
19. december 2009 - 12:09 #10
word-wrap virker så bare ikke i firefox. Men ja, der findes mere elegante løsninger på det gennem en kombination af javascript og css.
Avatar billede wanze Nybegynder
19. december 2009 - 16:48 #11
Word-wrap virker fint i Firefox.
Avatar billede intenz Novice
19. december 2009 - 18:14 #12
Ikke i min firefox (3.0.15).
Avatar billede wanze Nybegynder
19. december 2009 - 19:11 #13
Okay, men jeg har testet det (med success) i MSIE6, 7 og 8, Firefox 3.1, 3.5, Safari 3.2, 4.0, Avant 11.7, se evt:

MSIE 6 (http://browsershots.org/screenshots/97e08f4f98cc5dab4cde14a95c90886a/)
Firefox 3.1 (http://browsershots.org/screenshots/561f6d5093e143d66dbdce7841aeb689/)

Så det er vel bare et spørgsmål om tid - og Firefox-brugere plejer at være rimelig gode til at opdatere. Dog lader det ikke til at fungere i Opera.
Avatar billede hagger Nybegynder
22. december 2009 - 16:06 #14
Det der word-wrap er en smart idé til internet explorer, men har testet det i firefox, og i min version virker det ikke.

Men tænkte på om man måske kunne lave en kode, så hvis der blev skrevet f.eks. 10 Æ'er i træk så vil beskeden ikke komme i databasen? Det er lidt smartere, da de fleste spam-beskeder jeg får, er sådan nogle hvor der bare er 200 Æ'er i træk.
Avatar billede majbom Novice
04. november 2010 - 13:10 #15
lukketid?
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