login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Tekst uit TAG

Offline thyssimonis - 19/11/2008 09:34 (laatste wijziging 19/11/2008 09:41)
Avatar van thyssimonisPHP interesse He,

Ik wil het volgende! Ik heb bijvoorbeeld de volgende tekst.

Citaat:
[name]Thijs[/name] blablablablablabla


Nu wil ik alleen de waarde tussen [name][/name] laten zien en niet de tekst er omheen. Maar geen idee welke functie daar voor geschikt is.

Mvg,

Thijs

10 antwoorden

Gesponsorde links
Offline BigBug - 19/11/2008 09:39
Avatar van BigBug PHP expert je kan PHP.net: str_replace gebruiken om bijvoorbeeld van [name] => <name> te maken en van [/name] => </name>

Wil je wat geavanceerders dan kom je uit op PHP.net: preg_replace
Offline thyssimonis - 19/11/2008 09:41
Avatar van thyssimonis PHP interesse Ik wil de waarde tussen [name][/name] laten zien!
Offline Ontani - 19/11/2008 09:57
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
ik ben echt geen held met reguliere expressions maar dit zou kunnen werken:

  1. \[\w*\](\w*)\[\/\w*\]
Offline Joost - 19/11/2008 10:28 (laatste wijziging 19/11/2008 10:28)
Avatar van Joost PHP expert
  1. $naam = preg_replace("#\[name\](.*?)\[/name\]#si", "\\1", $text);


Die zou moeten werken  
Offline Kr4nKz1n - 19/11/2008 10:33
Avatar van Kr4nKz1n Onbekend
thyssimonis schreef:
Ik wil de waarde tussen [name][/name] laten zien!
Ja hij gaf een begin van de oplossing.

En dan kunnen wij van jou verwachten dat je gaat uitzoeken hoe je dit kunt toepassen.
Offline thyssimonis - 19/11/2008 13:24
Avatar van thyssimonis PHP interesse
Medieval schreef:
[..code..]

Die zou moeten werken  


Zover was ik ook al, maar nu krijg ik de tekst mee en dat moet niet!
Ik moet als eind waar alleen Thijs hebben!
Offline Joost - 19/11/2008 13:38 (laatste wijziging 19/11/2008 13:44)
Avatar van Joost PHP expert
  1. $naam = preg_replace("#(.*?)\[name\](.*?)\[/name\](.*)#si", "\\2", $text);


Als je al zover was had je dat ook wel zelf kunnen bedenken  
Offline Stijn - 19/11/2008 14:23
Avatar van Stijn PHP expert Nog een manier!

  1. preg_match("~(.*?)\[name\](.*?)\[/name\](.*)~" , $string , $results);


$results[0] bevat de hele string die gematched is.
$results[1] bevat hetgene voor [name]
$results[2] bevat hetgene tussen [name]
$results[3] bevat hetgene na [/name]

Zo heb je alles meteen 
Offline Gerard - 19/11/2008 14:37
Avatar van Gerard Ouwe rakker En als je ze allemaal wilt hebben dan maak je gebruik van PHP.net: preg_match_all.
Offline Richard - 19/11/2008 22:14
Avatar van Richard Crew algemeen Hij wil alleen de naam, dus zo:

  1. <?php
  2. preg_match('~\[name]([^]]+)\[/name]~i', $string, $match);
  3. echo $match[1];
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.204s