alles was in klammer steht

kerstel

Erfahrenes Mitglied
Hallo,

ich will aus einem String alles angezeigt bekommen, was in geschweifter Klammer eingeschlossen ist, also z.B. {bla} {test}...

hab es so probiert:

PHP:
$search = "{(.*?)}";
preg_match($search, $values, $reg, PREG_OFFSET_CAPTURE);
 
print_r($reg);

aber dat tut nisch :-)

Danke und Gruß
Kerstel
 
Versuch mal dieses:
PHP:
$search = "/\{(.*?)\}/";
Die Klammern müssen mit einem Backslash maskiert werden.
 
Zuletzt bearbeitet:
kann ich für { und } auch eine variable einsetzen?

also z.b.

PHP:
$search = "#\".$delim["left"]."(.*?)\".$delim["right"]."#";

klappt irgendwie nicht so ganz :-)

Danke und Gruß
Kerstel
 
PHP:
'/'.preg_quote($delim["left"]).'([^'.preg_quote($delim["right"]).']*)'.preg_quote($delim["right"]).'/s'
Oder etwas übersichtlicher:
PHP:
sprintf(
	'/%s([^%s]*)%s/s',
	preg_quote($delim["left"]),
	preg_quote($delim["right"]),
	preg_quote($delim["right"])
)
 
also bei mir liefert das alles ein leeres Array, ich poste mal meinen kompletten Code :-)

PHP:
$_Lines = file($Path.$FileName);
$search = sprintf('/%s([^%s]*)%s/s', preg_quote($delim["left"]), preg_quote($delim["right"]), preg_quote($delim["right"]));
foreach ($_Lines as $values)
{
 preg_match($search, $values, $_Regs, PREG_OFFSET_CAPTURE);
}
echo "<pre>";
print_r($_Regs);
echo "</pre>";

im der Datei steht folgendes:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="de">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="de" />
<title>Neue Seite 1</title>
<link rel="stylesheet" type="text/css" href="forum.css" />
</head>

<body>
<b>{$Var1}</b>
<h1>{$Var2}</h1>
</body>
</html>

eigentlich sollte im Array $_Regs jetzt {$Var1} und {$Var2} stehen, aber das ist leer
 
Zurück