Avatar billede qualon1 Nybegynder
22. oktober 2004 - 12:51 Der er 7 kommentarer og
1 løsning

Tage 40 tegn før "test" og 40 tegn efter Test

hej..

Jeg vil gerne lave en søgefunktion der viser det ord den fandt. Men da det er nogen lange tekster den søger i skal den kun vise det tekst der ligger omkring det ord man har søgt på...

Hvordan gør man så at hvis man søgte i den tekst jeg har skrevet herover.. efter order "tekster" ville den vise det sådan:

Men da det er nogen lange <b>tekster</b> den søger i skal den kun vise det

Hvordan gør man det?
Avatar billede nikolajdu Nybegynder
22. oktober 2004 - 13:01 #1
hvis nu du fik lukket nogle af alle dine åbne spørgsmål så kune det være du ville afsætte mere end 3 point...
Avatar billede bojo Nybegynder
22. oktober 2004 - 13:18 #2
<?php

$tekst = "dette er en test af delt visning";
$find = "test";
$vislen=5;

$pos = strpos ( $tekst, $find );
$pos=$pos<$vislen?0:$pos-$vislen;
echo substr( $tekst, $pos, $vislen*2+strlen($find));

?>
Avatar billede jakobdo Ekspert
22. oktober 2004 - 13:58 #3
Dette kan ikke blive lettere:

<?php
    $mystring = 'Tre danske soldater blev såret i Irak i morges. To blev såret henholdsvis i skulderen og øjebrynet, da en vejbombe blev bragt til detonation, mens de gennemførte en patruljekørsel, oplyser Hærens Operative Kommando. Den sidste, en soldat fra Skive, blev såret i formiddags, da hans patrulje var på vej til Camp Danevang - denne gang var det også en vejbombe, der var skyld i ulykken. Soldaten blev slået bevidstløs og fik en svær hjernerystelse. Han er blevet indlagt på et felthospital på Sheiba Log Base.';
    $findme  = 'gennemførte';
    $strings = preg_replace('/(.{0,40}$findme.{0,40})/', '(.{0,40}soldater.{0,40})', $content);

    if (preg_match("/(.{0,40})(" . $findme . ")(.{0,40})/", $mystring, $matches))
    {
        echo "...<span style=\"color:red;\">$matches[1]</span>";
        echo "<span style=\"color:blue;\">$matches[2]</span>";
        echo "<span style=\"color:red;\">$matches[3]</span>...";
    }
    else
    {
        echo "Error";
    }

?>
Avatar billede jakobdo Ekspert
22. oktober 2004 - 13:58 #4
Hov:

<?php
    $mystring = 'Tre danske soldater blev såret i Irak i morges. To blev såret henholdsvis i skulderen og øjebrynet, da en vejbombe blev bragt til detonation, mens de gennemførte en patruljekørsel, oplyser Hærens Operative Kommando. Den sidste, en soldat fra Skive, blev såret i formiddags, da hans patrulje var på vej til Camp Danevang - denne gang var det også en vejbombe, der var skyld i ulykken. Soldaten blev slået bevidstløs og fik en svær hjernerystelse. Han er blevet indlagt på et felthospital på Sheiba Log Base.';
    $findme  = 'gennemførte';

    if (preg_match("/(.{0,40})(" . $findme . ")(.{0,40})/", $mystring, $matches))
    {
        echo "...<span style=\"color:red;\">$matches[1]</span>";
        echo "<span style=\"color:blue;\">$matches[2]</span>";
        echo "<span style=\"color:red;\">$matches[3]</span>...";
    }
    else
    {
        echo "Error";
    }

?>
Avatar billede jakobdo Ekspert
22. oktober 2004 - 15:12 #5
Måske mere korrekt:

<?php
    $mystring = 'Tre danske soldater blev såret i Irak i morges. To blev såret henholdsvis i skulderen og øjebrynet, da en vejbombe blev bragt til detonation, mens de gennemførte en patruljekørsel, oplyser Hærens Operative Kommando. Den sidste, en soldat fra Skive, blev såret i formiddags, da hans patrulje var på vej til Camp Danevang - denne gang var det også en vejbombe, der var skyld i ulykken. Soldaten blev slået bevidstløs og fik en svær hjernerystelse. Han er blevet indlagt på et felthospital på Sheiba Log Base.';
    $findme  = 'Sheiba';

    if (preg_match("/(.{0,40})(" . $findme . ")(.{0,40})/", $mystring, $matches))
    {
        echo "<p>$mystring</p>";
        if (strlen($matches[1]) == 40)
            echo "...";
        echo "<span style=\"color:red;\">$matches[1]</span>";
           
        echo "<span style=\"color:blue;\">$matches[2]</span>";
       
        echo "<span style=\"color:red;\">$matches[3]</span>";
        if (strlen($matches[3]) == 40)
            echo "...";
    }
    else
    {
        echo "Error";
    }

?>
Avatar billede qualon1 Nybegynder
09. juli 2005 - 11:11 #6
tak det virker... skriv et svar ´jakobdo
Avatar billede jakobdo Ekspert
09. juli 2005 - 11:23 #7
Svar! (det var godt nok længe under vejs der spørgsmål) :o)
Avatar billede jakobdo Ekspert
09. juli 2005 - 11:30 #8
Tak for point!
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