login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Selecteer 6 woorden voor en na een gegeven woord

Offline JLT - 01/05/2013 17:27
Avatar van JLTPHP interesse Het is inmiddels een tijd geleden dat ik met codes in de weer ben geweest en liep daarom al vrij snel vast. Hopelijk kan een van jullie me helpen.

Ik gebruik de volgende functie om een woord op te zoeken in een string.

  1. if (stristr($content, $keyword) !== false) {


Nu wil ik alleen niet weten of het woord voorkomt in de string, maar ik wil 6 woorden voor en na het woord selecteren uit $content. Ik wil dus een quote zien te maken op basis van een gegeven keyword.

Hopelijk kan iemand me opweg helpen. Natuurlijk weer hartstikke bedankt!

4 antwoorden

Gesponsorde links
Offline WouterJ - 01/05/2013 19:26
Avatar van WouterJ HTML gevorderde Ik zou zoiets doen met de pReg library, meer specifiek de PHP.net: preg_match functie:
  1. $str = '...';
  2. $keyword = 'foo';
  3.  
  4. $wordsBefore = $wordsAfter = 6;
  5.  
  6. $pattern = '/
  7. # 6 woorden voor het woord
  8. (?P<before>\w+\s){'.$wordsBefore.'}
  9.  
  10. # het woord zelf
  11. '.preg_quote($keyword).'
  12.  
  13. # 6 woorden na het woord
  14. (?P<after>\w+\s){'.$wordsAfter.'}
  15. /x'; // x flag verwijderd alle trailing whitespace en comments
  16.  
  17. if (preg_match($pattern, $str, $matches)) {
  18. echo $matches[before]; // de 6 woorden ervoor
  19. echo $matches[after]; // de 6 woorden erna
  20. }
Offline Martijn - 02/05/2013 14:55 (laatste wijziging 02/05/2013 14:55)
Avatar van Martijn Crew PHP kun je ipc {6} niet beter {0,6} doen? Stel er staan 5 of minder woorden voor, dan werkt het nogsteeds 

(edit: Of korter {,6}, maar met een 0 erbij leest beter)
Offline WouterJ - 02/05/2013 19:32
Avatar van WouterJ HTML gevorderde Ja, dat is inderdaad beter.

Maar dan wordt het weer leuk met strings als: create Share Links to send your expressions to co-workers or link to them on Twitter or your blog Wil je hierbij de 1e to matchen of de 2e? En hoe ga je dan om met de woorden tussen de 2 to's? Hoort dat als achtervoegsel van de 1e of als voorvoegsel van de 2e?
Offline JLT - 03/05/2013 13:47
Avatar van JLT PHP interesse He Wouter,

Dit ziet er inderdaad beter uit. Ik ga hier binnenkort weer verder mee stoeien. Super bedankt voor de snelle terugkoppeling en het script.

Grt.
Jelte
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.198s