login  Naam:   Wachtwoord: 
Registreer je!
 Forum

reguliere expressie (Opgelost)

Offline qubus - 07/03/2009 16:23 (laatste wijziging 07/03/2009 16:25)
Avatar van qubusLid Hallo,

Ik wil uit een string, twee gedeeltes halen. Dit doe ik alsvolgt:
  1. $string = "define('LANG_TITEL', 'Dit is een titel);";
  2.  
  3. preg_match('define\(\'(*?)\', \'(*?)\'\);', $string, $match);
  4. list($ervoor, $erna) = $match;
  5.  
  6. echo "ERVOOR--> " . $ervoor;
  7. echo "ERNA--> " . $erna;

$ervoor moet dan dus LANG_TITEL bevatten
$erna moet dan dus Dit is een titel bevatten.

Ik krijg het echter niet voor elkaar, kan iemand me helpen?

Alvast bedankt!

7 antwoorden

Gesponsorde links
Offline Joost - 07/03/2009 16:26 (laatste wijziging 07/03/2009 16:26)
Avatar van Joost PHP expert De enige mogelijkheid is het zo te doen:
  1. $string = "define('LANG_TITEL', 'Dit is een titel')";

PHP ziet het anders niet als een string met de gedefinieerde constante 
Offline qubus - 07/03/2009 16:30
Avatar van qubus Lid Dank je, ik was er reeds achter. Het helpt me echter nog niet om de juiste twee gedeeltes uit de string te halen, kun je me daar ook bij helpen?
Offline mothh - 07/03/2009 16:34
Avatar van mothh Onbekend doe dit eens:
  1. $ervoor = 'LANG_TITEL'
  2. $erna = 'Dit is een titel'


  1. echo '$ervoor';
  2. echo '$erna';
Offline qubus - 07/03/2009 16:39
Avatar van qubus Lid Ja.... dat begrijp ik, maar ik wil uit de string $string juist dat uiteindelijk in $ervoorhet gedeelte tussen de eerste twee '' staat, en dat in $erna het gedeelte tussen de tweede '' staat. Dit kan elke willekeurige tekst zijn, en is niet telkens LANG_TITEL en Dit is een titel.

Graag hulp bij de reguliere expressie dus....
Offline Joost - 07/03/2009 16:41
Avatar van Joost PHP expert
  1. $string = "define('LANG_TITEL', 'Dit is een titel');";
  2. preg_match("#define\('(.*?)', '(.*?)'\);#i", $string, $match);
  3. list($helemaal, $ervoor, $erna) = $match;
  4.  
  5. echo "ERVOOR--> " . $ervoor;
  6. echo "ERNA--> " . $erna;
Offline qubus - 07/03/2009 16:45
Avatar van qubus Lid @Medieval
Dank je wel!!!!
Werkt perfect.
Offline Rik - 07/03/2009 16:46 (laatste wijziging 07/03/2009 16:47)
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Je bent de delimiters vergeten. Daarnaast bevat match ook nog de hele string die gematched wordt:
Citaat:
Array
(
[0] => define('LANG_TITEL', 'Dit is een titel');
[1] => LANG_TITEL
[2] => Dit is een titel
)


Zo zou het moeten werken als je de quotes in de invoer goed hebt:
  1. preg_match('/define\(\'(.*?)\', \'(.*?)\'\\);/', $string, $match);
  2. list($match, $ervoor, $erna) = $match;


Edit:
Weer is te laat.  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.218s