09. september 2006 - 09:55
Der er
24 kommentarer og 2 løsninger
Acronym script
Hejsa, Jeg søger et acronym script - er der nogle der ligger inde med et sådan? Et acronymscript er et script der leder ens tekst igennem for acronymer og hvis man har indtastet info for PET så hvert sted hvor teksten indeholder ordet PET så ved mouseOver får man vist den tekst man har tilknyttet ordet f.eks.: Politiets efterretningstjeneste...
Annonceindlæg fra Computerworld
09. september 2006 - 10:50
#1
$abbrs = array( 'PET' => 'Politiets Efterretningstjeneste', 'PHP' => 'Hypertext Preprocessor' ); $from = array(); $to = array(); foreach ($abbrs as $k => $v) { $from[] = '/\b' . $k . '\b/'; $to[] = '<abbr title="' . $v . '">' . $k . '</abbr>'; } $body = preg_replace($from, $to, $body); Utestet!
09. september 2006 - 10:52
#2
Tanken er, at du så kun skal rette i $abbrs-array'et: $abbrs = array( 'PET' => 'Politiets Efterretningstjeneste', 'PHP' => 'Hypertext Preprocessor' ); Det er måske ikke den smarteste måde, men det burde virke. Du kan evt. bruge <acronym> i stedet - kan ikke huske hvilket der er det "rigtigste"...
09. september 2006 - 14:31
#3
Det må vel være <abbr> som du skriver, <acronym> er mere beregnet til akronymer, hvilket er noget andet end forkortelser. PHP er en forkortelse og PET er et akronym :) Et akronym skal danne et ord man kan sige...
09. september 2006 - 15:35
#4
coderdk > Det er der logik i ;)
10. september 2006 - 18:59
#5
Okay nu har jeg en database med følgende struktur: CREATE TABLE `akronymer` ( `name` varchar(255) NOT NULL default '', `description` longtext, PRIMARY KEY (`name`) ) I min index.php der indeholder variable: echo $content["all"]; alt html'en Hvordan får jeg så gjort sådan at denne løber min html igennem og hver gang den støder på et akronym fra databasen 'name' bliver det erstattet med: '<acronym title="' . $acronyms[$i]['description'] . '">' . $acronyms[$i]['name'] . '</acronym>'; Er det muligt og hvordan?
10. september 2006 - 19:17
#6
Jeg fandt denne i forbindelse med et acronym mod til forumet phpBB - jeg håbede man kunne bruge den function, men hvordan?
http://pastebin.ca/166182
10. september 2006 - 19:57
#7
Noget i stil med: // Hent dit content til $content['all'] $sql = "SELECT name, description FROM akronymer"; $qh = mysql_query( $sql ) or die( mysql_error() ); while ( $row = mysql_fetch_assoc( $qh ) ) { $content['all'] = preg_replace( '/' . preg_quote( $row['name'], '/' ) . '/i', '<abbr title="' . $row['description'] . '">\\0</abbr>' ); } echo $content['all'];
10. september 2006 - 19:58
#8
Mjah: $sql = "SELECT name, description FROM akronymer"; $qh = mysql_query( $sql ) or die( mysql_error() ); while ( $row = mysql_fetch_assoc( $qh ) ) { $content['all'] = preg_replace( '/' . preg_quote( $row['name'], '/' ) . '/i', '<abbr title="' . $row['description'] . '">\\0</abbr>', $content['all'] ); } echo $content['all'];
10. september 2006 - 20:05
#9
hallo mand - så rykker vi vist... jeg er i fuld gang med at teste :D
10. september 2006 - 20:19
#10
Kan du komme med et svar? Jeg har dog ændret det til: $content['all'] = preg_replace( '/' . preg_quote( $row[name'], '/' ) . '/i', '<abbr title="' . $row['description'] . '"><span class="abbr" title="' . $row['description'] . '">\\0</span></abbr>', $content['all'] ); Og indsat følgende i min CSS abbr, acronym, span.abbr { cursor: help; border-bottom: 1px dashed #000; } Det ser ud til spille :D Tommel op!
10. september 2006 - 20:28
#11
Cool :) Måske skal jensgram og jeg dele dem? :)
10. september 2006 - 20:29
#12
Ups - jeg har først lige kigget med nu.
10. september 2006 - 20:38
#13
skal vi lave en fordeling der hedder Coderdk 100 jens 44 ?
10. september 2006 - 20:40
#14
Hmm - fint med mig.
10. september 2006 - 20:42
#15
Så og nu med karma :D
10. september 2006 - 20:44
#16
Så takker jeg.
10. september 2006 - 22:54
#17
Kan jeg få lidt bonushjælp idet der er et problem når jeg laver et acronym der hedder NY så bliver: Intet Nyt er godt nyt - så bliver Ny og ny til et acronym Altså der skelnes ikke mellme store og små bogstover og heller ikke om Ny/NY/nY indgår i et andet ord, som Nyt... Hvordan fixes det?
10. september 2006 - 23:04
#18
Prøv lige: $content['all'] = preg_replace( '/(^|\w)' . preg_quote( $row[name'], '(\w|$)/' ) . '/i', '<abbr title="' . $row['description'] . '"><span class="abbr" title="' . $row['description'] . '">\\0</span></abbr>', $content['all'] );
10. september 2006 - 23:05
#19
Ja, det må så blive: $content['all'] = preg_replace( '/(^|\w)(' . preg_quote( $row[name'], ')(\w|$)/' ) . '/i', '<abbr title="' . $row['description'] . '"><span class="abbr" title="' . $row['description'] . '">\\2</span></abbr>', $content['all'] );
11. september 2006 - 07:08
#20
Warning: preg_replace(): Compilation failed: missing ) at offset 9 in /var/www/vhosts/....../content.func.inc.php on line 477 :S
11. september 2006 - 07:16
#21
Jeg er ved en comp. igen onsdag - skal på kursus indtil da....
11. september 2006 - 09:37
#22
Mig der er stiv: $content['all'] = preg_replace( '/(^|\w)' . preg_quote( $row[name'], '/' ) . '(\w|$)/i', '<abbr title="' . $row['description'] . '"><span class="abbr" title="' . $row['description'] . '">\\0</span></abbr>', $content['all'] );
11. september 2006 - 11:16
#23
Ja, vi skal have fjernet i-modifieren som det første. Men er det så ikke nemmere med \b (coderdk)?
11. september 2006 - 11:50
#24
jensgram, Jo for satan! Det er mig der tåger :) Det var meningen det skulle være word boundary og ikke word char :-D /i er nok også god at fjerne ja :)
11. september 2006 - 12:44
#25
$content['all'] = preg_replace( '/(^|\b)' . preg_quote( $row[name'], '/' ) . '(\b|$)/', '<abbr title="' . $row['description'] . '"><span class="abbr" title="' . $row['description'] . '">\\0</span></abbr>', $content['all'] ); Enig?
12. september 2006 - 17:46
#26
jep det ser ud til at spille :D Super Takker ;D
Vi tilbyder markedets bedste kurser inden for webudvikling