[GastForen Programmierung/Entwicklung PHP und MySQL preg_replace() und assoziative arrays

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

preg_replace() und assoziative arrays

Ollli
Beiträge gesamt: 458

18. Jul 2004, 17:15
Beitrag # 1 von 6
Bewertung:
(1010 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Leutz,

ich bin da gerade auf ein Problem gestoßen und wollte mal fragen, ob da jemand eine Lösung hat, denn ich habe nichts im Netz gefunden (wer was hat, nur her damit).

Zum Problem:
Ich will mit Hilfe von preg_replace Platzhalter in einem String mit einem assoziativen Array verknüpfen:
--- Code ---
$vars["welt"] = "Hallo Welt";
$vars["ollli"] = "Hallo Ollli";
$string = "An die Welt: {var:welt}\nUnd für den Ollli: {vara:ollli}";
preg_replace("/\{\{var:(\w+)\}\}/",$vars["\\1"],$string);
--- Code:END ---

So, wie es da jetzt steht, funzt es nicht. Ich habe schon einige verschiedene Schreibformen versucht, doch keine hat funktioniert. Hat da jemand die Lösung parat?

Achso, ich bräuchte es eigentlich noch einen Zacken schärfer, da das ganze innheralb einer Klasse geschieht sind die Variablen nicht $vars[] sondern $this->vars[].

Ich freu mich auf Feedback :-)

Ollli
-----------
ja, es stimmt - es sind wirklich 3 "l" im Namen und ich bestehe auf jedes einzelne ;-)
X

preg_replace() und assoziative arrays

oesi50
  
Beiträge gesamt: 2315

18. Jul 2004, 18:17
Beitrag # 2 von 6
Beitrag ID: #97918
Bewertung:
(1010 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi ollli,

wie wärs denn damit:

<?php
$vars["welt"] = "Hallo Welt";
$vars["ollli"] = "Hallo Ollli";
$string = "An die Welt: {var:welt}\nUnd für den Ollli: {var:ollli}";

$pattern[0] = "/\{var:welt\}/";
$pattern[1] = "/\{var:ollli\}/";

$repl[0] = "Hallo Welt";
$repl[1] = "Hallo Ollli";

echo preg_replace($pattern, $repl ,$string);
?>

Das pattern und das repl Array kannst Du ja leicht mit einer Schleife füllen.

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#97907]

preg_replace() und assoziative arrays

Ollli
Beiträge gesamt: 458

18. Jul 2004, 18:24
Beitrag # 3 von 6
Beitrag ID: #97919
Bewertung:
(1010 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi oesi50,

ich hatte gehofft, alles in einem ruck zu machen, bzw. besteht auch die gefahr, dass die "reihenfolge" nicht immer stimmt. Gibt es noch eine andere Möglichkeit?

Aber danke für die Antwort, denn sie hat mich gleich so einer anderen Möglichkeit inspiriert, die leider auch nicht funktionierte ;-)

Ollli
-----------
ja, es stimmt - es sind wirklich 3 "l" im Namen und ich bestehe auf jedes einzelne ;-)


als Antwort auf: [#97907]

preg_replace() und assoziative arrays

oesi50
  
Beiträge gesamt: 2315

18. Jul 2004, 18:39
Beitrag # 4 von 6
Beitrag ID: #97921
Bewertung:
(1010 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
versuch mal das:

echo preg_replace( "/\{var:(\w+)\}/e", '$vars["$1"]' ,$string);

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#97907]

preg_replace() und assoziative arrays

Ollli
Beiträge gesamt: 458

18. Jul 2004, 19:52
Beitrag # 5 von 6
Beitrag ID: #97923
Bewertung:
(1010 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Funzt - super!

Ich bin mir sicher, dass ich es so auch schon probiert habe, allerdings ohne das /e.
Sofern du noch Zeit und Lust hast wäre es super, wenn du mir kurz das "e" erklären könntest und mir auch sagen könntest, warum es dadurch funktioniert.

In der Klasse funktioniert es auch! *freu*

Danke nochmal und schönen Sonntag Abend noch!
Ollli
-----------
ja, es stimmt - es sind wirklich 3 "l" im Namen und ich bestehe auf jedes einzelne ;-)


als Antwort auf: [#97907]

preg_replace() und assoziative arrays

oesi50
  
Beiträge gesamt: 2315

18. Jul 2004, 20:08
Beitrag # 6 von 6
Beitrag ID: #97927
Bewertung:
(1010 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ich kenne das e(eval) auch nur von Perl, dort wird damit die Ersetzung als Perl Code evaluiert. Da ja preg_ die geklauten regexes von Perl sind, hab ich mir gedacht, in PHP wird's dann auch so gehen.


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#97907]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
05.02.2021 - 05.11.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 05. Feb. 2021, 13.00 Uhr - Freitag, 05. Nov. 2021, 17.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PM

Veranstaltungen
12.03.2021 - 16.07.2021

Digicomp Academy AG, Zürich oder virtuell
Freitag, 12. März 2021, 13.00 Uhr - Freitag, 16. Juli 2021, 17.00 Uhr

Lehrgang

Steigen Sie in die Welt des Publishings ein und erlangen Sie die Zertifizierung von publishingNETWORK. Lernen Sie in diesem Lehrgang Druckmedien professionell zu erarbeiten, druckfertige PDFs zu erstellen und CI/CD-Vorgaben umzusetzen.

Preis: CHF 6'300.-
Dauer: 18 Tage (ca. 126 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt.

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PBAS