![]() |
SELFHTML Forumsarchiv |
|
|
Die folgende Nachricht zum Thema stammt von: m², 31. 12. 2005, 15:56
hallo.
ich habe ein Problem mit folgender Ausgangssituation:
ich habe zwei strings:
$string="[name] ist dein Name.";
$name="Paul";
was herauskommen soll:
"Paul ist dein Name."
ich bin schon mit preg_replace am gange, heraus kommt da folgender string:
"$name ist dein Name."
aber das hilft mit leider auch nicht viel weiter...
wie kann ich es erreichen, dass der name Paul bei $name eingesetzt wird?
wichtig: das ganze muss dynamisch sein, das soll praktisch für jede variable funktionieren, z.b. "der [heute] ist ein schöner [tag_name]".
wenn mir irgendwie geholfen werden kann ;)
ich bitte darum :)
m²
PS: Guten Rutsch!
Die folgende Nachricht zum Thema stammt von: Ashura, 31. 12. 2005, 16:13
Hallo m².
»» ich habe zwei strings:
»»
»» $string="[name] ist dein Name.";
»»
»» $name="Paul";
»»
»» wie kann ich es erreichen, dass der name Paul bei $name eingesetzt wird?
»» wichtig: das ganze muss dynamisch sein, das soll praktisch für jede variable funktionieren, z.b. "der [heute] ist ein schöner [tag_name]".
Meine Empfehlung: verwende ein Array.
Dort kannst du die Bezeichner selbst wählen, so z. B.:$replacements = array (
'vname' => 'Max',
'name' => 'Mustermann'
);
Dann kannst du darauf ganz einfach mittels foreach-Schleife zugreifen und mittels str_replace (ein regulärer Ausdruck ist hier überflüssig und vergeudet nur Performance) deinen gewünschten String zugreifen:$string = 'Hallo [vname] [name]!';
foreach ($replacements as $from => $to) {
$string = str_replace('['.$from.']', $to, $string);
}
echo $string;
Einen schönen Samstag noch.
Gruß, Ashura
--
Last Tears Keep Calling
See Angels Falling
Black Shadows In Your Head
And One Eye For The Dead
Die folgende Nachricht zum Thema stammt von: m², 31. 12. 2005, 17:21
hallo nochmal,
ich habe eine Lösung, falls das interessiert:function prozess_vars($string) {
foreach ($_REQUEST as $var_name => $var_value) {
echo $var_name.": ".$var_value."<br>";
$string = str_replace("[".$var_name."]", $var_value, $string);
}
return $string;
}
damit geht es für jede definierte variable.
vielen dank für eure hilfe, auch wenn ich mir die lösung selbst gebastelt hab ;)
m²
Die folgende Nachricht zum Thema stammt von: Auge, 31. 12. 2005, 16:13
Hallo
»» hallo.
»» ich habe ein Problem mit folgender Ausgangssituation:
»» ich habe zwei strings:
»»
»» $string="[name] ist dein Name.";
»»
»» $name="Paul";
»»
»» was herauskommen soll:
»»
»» "Paul ist dein Name."<?php
$name = "Paul";
$string = $name." ist dein Name.";
echo "<p>".$string."</p>";
// Ausgabe "Paul ist dein Name"
?>
Dazu brauchts keine regulären Ausdrücke, auch wenn das grundsätzlich auch so machbar ist. Wenn es denn unbedingt ein regulärer Ausdruck sein soll, solltest du deinen hier auch mal herzeigen, um zu schauen, was an deiner Herangehensweise falsch sein könnte.
»» PS: Guten Rutsch!
dito
Tschö, Auge
--
Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
(Victor Hugo)
Veranstaltungsdatenbank Vdb 0.1
Die folgende Nachricht zum Thema stammt von: m², 31. 12. 2005, 16:47
»» Dazu brauchts keine regulären Ausdrücke, auch wenn das grundsätzlich auch so machbar ist. Wenn es denn unbedingt ein regulärer Ausdruck sein soll, solltest du deinen hier auch mal herzeigen, um zu schauen, was an deiner Herangehensweise falsch sein könnte.
vielen dank für die anregungen. stringverkettung mit . kommt hier leider nicht in frage:echo prozess_vars("[nick] ist dein Name.");
function prozess_vars($string) {
$string = preg_replace("!\[(.*?)\]!", "$$1", $string);
return $string;
}
das ist der ausschnitt.
irgendein benutzer soll in ein textfeld mal phpvariablen über [variablenname] ansprechen/ausgeben können.
wenn man z.b. nen seitenaufbau hat:
<html>
<head><title>[PageTitel]</title></head>
<body>
[Content]
</body>
</html>
wenn man dieses mit einer schleife abarbeitet, muss man alle gegebenen variablen vorher festlegen (in einem array)..
das ist es was ich verhindern will, da variablen hinzugefügt werden können, welche man nicht voraussehen kann (z.b. post daten).
vielen dank für eure bemühungen, ich hoffe mein problem ist etwas klarer,
m²
Die folgende Nachricht zum Thema stammt von: Lachgas, 31. 12. 2005, 17:01
Hallo m²!
Einmal reicht, auch an Silvester ;-)
℆, ℒacℎgas
--
Bei der intendierten Realisierung der linguistischen Simplifizierung
des regionalen Idioms resultiert die Evidenz der Opportunität extrem
apparent, den elaborierten und quantitativ opulenten Usus nicht assi-
milierter Xenologien konsequent zu eliminieren!
Die folgende Nachricht zum Thema stammt von: Auge, 31. 12. 2005, 17:09
Hallo
»» vielen dank für die anregungen. stringverkettung mit . kommt hier leider nicht in frage:
»»
»» »» echo prozess_vars("[nick] ist dein Name.");
»»
»» function prozess_vars($string) {
»» $string = preg_replace("!\[(.*?)\]!", "$$1", $string);
»» return $string;
»» }
»»
»»
»» das ist der ausschnitt.
»» irgendein benutzer soll in ein textfeld mal phpvariablen über [variablenname] ansprechen/ausgeben können.
»» wenn man z.b. nen seitenaufbau hat:
»»
»» <html>
»» <head><title>[PageTitel]</title></head>
»» <body>
»» [Content]
»» </body>
»» </html>
»»
»» wenn man dieses mit einer schleife abarbeitet, muss man alle gegebenen variablen vorher festlegen (in einem array)..
»» das ist es was ich verhindern will, da variablen hinzugefügt werden können, welche man nicht voraussehen kann (z.b. post daten).
»»
»» vielen dank für eure bemühungen, ich hoffe mein problem ist etwas klarer,
»» m²
Oha, ich habe ein Déjà-vu.
Davon abgesehen denke ich, dass Ashuras Vorschlag am besten geeignet ist.
Tschö, Auge
--
Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
(Victor Hugo)
Veranstaltungsdatenbank Vdb 0.1
Die folgende Nachricht zum Thema stammt von: Lachgas, 31. 12. 2005, 16:14
Hallo m²!
»» "$name ist dein Name."
Zeig mal deinen Regulären Ausdruck und die Weiterverarbeitung des-
selben.
Vermutlich wird die Variable nicht durch ihren Wert ersetzt, da sie
in einer entsprechenden Umgebung genannt wird ('' statt ""). Um
Abhilfe zu schaffen, ersetze einfach in einen Ausdruck à laecho $name.' ist dein Name.';
Das lässt sich bei o.g. Schritten sicherlich ganz leicht realisieren.
℆, ℒacℎgas
--
Bei der intendierten Realisierung der linguistischen Simplifizierung
des regionalen Idioms resultiert die Evidenz der Opportunität extrem
apparent, den elaborierten und quantitativ opulenten Usus nicht assi-
milierter Xenologien konsequent zu eliminieren!
Die folgende Nachricht zum Thema stammt von: m², 31. 12. 2005, 16:26
»» Zeig mal deinen Regulären Ausdruck und die Weiterverarbeitung des-
»» selben.
»» Vermutlich wird die Variable nicht durch ihren Wert ersetzt, da sie
»» in einer entsprechenden Umgebung genannt wird ('' statt ""). Um
»» Abhilfe zu schaffen, ersetze einfach in einen Ausdruck à la
»» echo $name.' ist dein Name.';
vielen dank für die anregungen. stringverkettung mit . kommt hier leider nicht in frage:
echo prozess_vars("[nick] ist dein Name.");
function prozess_vars($string) {
$string = preg_replace("!\[(.*?)\]!", "$$1", $string);
return $string;
}
das ist der ausschnitt.
irgendein benutzer soll in ein textfeld mal phpvariablen über [variablenname] ansprechen/ausgeben können.
wenn man z.b. nen seitenaufbau hat:
<html>
<head><title>[PageTitel]</title></head>
<body>
[Content]
</body>
</html>
wenn man dieses mit einer schleife abarbeitet, muss man alle gegebenen variablen vorher festlegen (in einem array)..
das ist es was ich verhindern will, da variablen hinzugefügt werden können, welche man nicht voraussehen kann (z.b. post daten).
vielen dank für eure bemühungen, ich hoffe mein problem ist etwas klarer,
m²
Die folgende Nachricht zum Thema stammt von: m², 31. 12. 2005, 17:18
hallo nochmal,
ich habe eine Lösung, falls das interessiert:function prozess_vars($string) {
foreach ($_REQUEST as $var_name => $var_value) {
echo $var_name.": ".$var_value."<br>";
$string = str_replace("[".$var_name."]", $var_value, $string);
}
return $string;
}
damit geht es für jede definierte variable.
vielen dank für eure hilfe, auch wenn ich mir die lösung selbst gebastelt hab ;)
m²
Die folgende Nachricht zum Thema stammt von: m², 31. 12. 2005, 17:22
mist schon wieder doppelpost :(
sorry
Die folgende Nachricht zum Thema stammt von: Auge, 31. 12. 2005, 17:50
Hallo
»» mist schon wieder doppelpost :(
Neee: Dreifachpost.
http://forum.de.selfhtml.org/?t=120693&m=775326
http://forum.de.selfhtml.org/?t=120693&m=775320
http://forum.de.selfhtml.org/?t=120693&m=775325
;-)
Tschö, Auge
--
Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
(Victor Hugo)
Veranstaltungsdatenbank Vdb 0.1
Die folgende Nachricht zum Thema stammt von: m², 31. 12. 2005, 17:20
hallo nochmal,
ich habe eine Lösung, falls das interessiert:function prozess_vars($string) {
foreach ($_REQUEST as $var_name => $var_value) {
echo $var_name.": ".$var_value."<br>";
$string = str_replace("[".$var_name."]", $var_value, $string);
}
return $string;
}
damit geht es für jede definierte variable.
vielen dank für eure hilfe, auch wenn ich mir die lösung selbst gebastelt hab ;)
m²
© 1998-2006
Impressum, Software: Classic Forum