Avatar billede jenslyn_s Nybegynder
14. september 2005 - 20:25 Der er 14 kommentarer og
1 løsning

Split tekststreng udfra forekomst af et ord

"rip rap og rup drikker punch hos bedstemor og stjæler alt hendes medicin. Punktum slut strafe lock num test flaf."

$hit = "bedstemor";

Jeg vil så gerne have "bedstemor" og de 4 ord før og efter - altså: "rup drikker punch hos bedstemor og stjæler alt hendes"

Hvordan finder jeg ordet og trimmer strengen ned?
Avatar billede coderdk Praktikant
14. september 2005 - 20:41 #1
$text = "rip rap og rup drikker punch hos bedstemor og stjæler alt hendes medicin. Punktum slut strafe lock num test flaf.";
    $hit = "bedstemor";
    if ( preg_match( "/(([a-zæøåÆØÅ]+\s){0,4}" . preg_quote( $hit, "/" ) . "(\s[a-zæøåÆØÅ]+){0,4})/i", $text, $m ) )
    {
        echo $m[1];
    }
Avatar billede jenslyn_s Nybegynder
14. september 2005 - 21:26 #2
Ser godt ud! Men jeg får:
parse error, unexpected T_STRING

hvorfor? php vers. 4.noget
Avatar billede coderdk Praktikant
14. september 2005 - 21:28 #3
Må jeg se hele din kode? Det lyder som om der mangler et " eller ; eller sådan noget :)
Avatar billede coderdk Praktikant
14. september 2005 - 21:30 #4
Dette virker hos mig:

<?php

    $text = "rip rap og rup drikker punch hos bedstemor og stjæler alt hendes medicin. Punktum slut strafe lock num test flaf.";
    $hit = "bedstemor";
    if ( preg_match( "/(([a-zæøåÆØÅ]+\s){0,4}" . preg_quote( $hit, "/" ) . "(\s[a-zæøåÆØÅ]+){0,4})/i", $text, $m ) )
    {
        echo $m[1];
    }
   
?>
Avatar billede jenslyn_s Nybegynder
14. september 2005 - 21:42 #5
nogle whitespaces må have drillet. Får nu:

Warning: Wrong parameter count for preg_quote() in /home/business/www/phpinfo.php on line 4
rip rap og rup
Avatar billede coderdk Praktikant
14. september 2005 - 21:45 #6
Erh, har du klippet/klistret koden ind? For det virker altså. Både php 4.x og 5.x :)
Avatar billede jenslyn_s Nybegynder
14. september 2005 - 21:53 #7
så virker det... effter jeg rydede op i mellemrumene... er på OS X... underligt. Men tak
Avatar billede jenslyn_s Nybegynder
14. september 2005 - 22:00 #8
Av, kan det adaptes til vers. 3.0.18 ? - bare meget kort.(Ved godt det er mange spørgsmål....)

:-/
Avatar billede coderdk Praktikant
15. september 2005 - 00:22 #9
Det skulle da virke i 3.0.18, eftersom preg_match var tilgængelig fra 3.0.9 - Men hvorfor sådan en forældet PHP?
Avatar billede jenslyn_s Nybegynder
15. september 2005 - 11:48 #10
på 3.0.18 får jeg:

Warning: Wrong parameter count for preg_quote() in /home/business/www/phpinfo.php on line 4
rip rap og rup
Avatar billede jenslyn_s Nybegynder
15. september 2005 - 11:50 #11
btw. så er det UNI2 som kører den håbløse vers. installeret 2001 :-(

super nedtur!
Avatar billede coderdk Praktikant
15. september 2005 - 11:51 #12
Lyder underligt, men prøv at erstatte:

preg_quote( $hit, "/" )

med:

str_replace( "/", "\/", $hit )
Avatar billede jenslyn_s Nybegynder
15. september 2005 - 11:52 #13
Sidder bag en skræmmen proxy, så tester det hjemme om et par timer.
Avatar billede jenslyn_s Nybegynder
15. september 2005 - 13:06 #14
Ja tak. Den sidder i skabet nu. Mange tak for hjælpen!
Avatar billede coderdk Praktikant
15. september 2005 - 13:34 #15
Så lidt du :) Ponk uni2 til at køre en PHP-version fra dette årtusinde ;)
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