login  Naam:   Wachtwoord: 
Registreer je!
 Forum

String tussen 2 waardes matchen en replacen

Offline ikki007 - 11/01/2010 21:17
Avatar van ikki007Gouden medailleGouden medaille

PHP ver gevorderde
Hoi,

Ik ben niet thuis in het reguliere expressie gedeelte en probeer het volgende te bereiken.
Ik haal data op waar dingen in kunnen staan als "[start]string[/start]" nu wil ik alles tussen [start] en [/start] matchen en de hele handel vervangen door functie(string).
Dus "[start]string[/start]" matchen en vervangen door "functie(string)". Functie is dan een manipulatie die wordt doorgevoerd op de string.

Iemand enige idee hoe dit geheel in zijn werking gaat?

Ikki.

7 antwoorden

Gesponsorde links
Offline vinTage - 11/01/2010 22:00
Avatar van vinTage Nieuw lid
  1. <?php
  2. $tekst = 'abcdefg [start]hijklmn[/start]opqrstu';
  3.  
  4. $tekst = preg_replace_callback("#\[start\](.*?)\[/start\]#i","foofunctie", $tekst);
  5.  
  6. function foofunctie($blaat)
  7. {
  8. echo strtoupper($blaat[1]);
  9. }
Offline ikki007 - 11/01/2010 22:01
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Bedankt, ik had die functie idd gevonden en het het als volgt opgelost:

  1. <?php
  2. $input = "[valuta]5[/valuta]";
  3.  
  4. $factors = array(
  5. 'euro' => 1.00,
  6. 'dollar' => 1.45,
  7. 'pond' => 0.90,
  8. 'peso' => 5.52
  9. );
  10.  
  11. $valuta = 'euro';
  12.  
  13. function parseValuta($input) {
  14. global $factors;
  15. global $valuta;
  16.  
  17. return round($input[1]*$factors[$valuta], 2);
  18. }
  19.  
  20. $output = preg_replace_callback('{\[valuta]((?:[^[]+|\[(?!/valuta])[^[]+)*+)\[/valuta]}i', 'parseValuta', $input);
  21.  
  22. echo $output;
  23. ?>
Offline Richard - 12/01/2010 11:06
Avatar van Richard Crew algemeen Je bedoelt zoals ik je hier uitlegde? :-)

http://www.phpf...id=1286320
Bedankt door: ikki007
Offline ikki007 - 12/01/2010 13:41
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Richard schreef:
Je bedoelt zoals ik je hier uitlegde? :-)

http://www.phpf...id=1286320


Haha dat wilde ik nog vragen op phpfreakz of jij dat was 
Maar over het algemeen word je daar wat sneller op je vingers getikt dan hier dus wou offtopic voorkomen  
Offline Richard - 12/01/2010 16:43
Avatar van Richard Crew algemeen Nounou, zo snel word je daar niet op je vingers getikt hoor ;)
Offline ikki007 - 12/01/2010 17:47
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Even totaal wat anders, volgens mij worden links niet helemaal goed verwerkt zodra ze gequote zijn ;)
Offline ArieMedia - 12/01/2010 19:00
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
ikki007 schreef:
Even totaal wat anders, volgens mij worden links niet helemaal goed verwerkt zodra ze gequote zijn ;)
haal volgens mij er maar vanaf, ze worden gewoon niet goed verwerkt 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.187s