php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.10.2011, 17:14  
Neuer Benutzer
 
Registriert seit: 20.10.2011
Beiträge: 10
PHP-Kenntnisse:
Fortgeschritten
Stephan22 befindet sich auf einem aufstrebenden Ast
Standard preg_match mit Array?

Hallo,

Ich eröffne mal parallel ein zweites Thema. Habe ein weiteres allerdings leichteres Problem.

Mit php öffne ich eine Datei:
PHP-Code:
                $handle                    fopen($file"r");
                
$content                fread($handlefilesize($file));
                
fclose($handle); 
den Inhalt der Datei habe ich in $content stehen. Das funktioniert.
Nun möchte ich alles was umgeben von % steht ersetzen.

Beispiel:
Code:
Nur ein Beispiel. %platzhalter%
Ein weiteres beispiel. %test%
Weiterhin übergebe ich an die Funktion die das bearbeitet ein Array:

PHP-Code:
Array(
'platzhalter' => 'xyz',
'test' => 'abc'
Jetzt möchte ich quasi %platzhalter% ersetzen durch das was im Array steht.
Also aus %platzhalter% wird xyz.
Nur scheitere ich dort, da dass zu ersetzende aus einem Array kommen soll.

PHP-Code:
$content            preg_replace("/%(.*)%/""\\1"$content); 
Mit dem aufruf entferne ich nur die % also ist das was in \\1 steht ja korrekt.
Mache ich allerdings

$dataArray[\\1]
oder
$dataArray["\\1"]
usw

Klappt das alles nicht.

Hat da jemand eine idee zu

Danke & Gruß Stephan
Stephan22 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.10.2011, 17:34  
Neuer Benutzer
 
Registriert seit: 20.10.2011
Beiträge: 10
PHP-Kenntnisse:
Fortgeschritten
Stephan22 befindet sich auf einem aufstrebenden Ast
Standard

Hab schon seit 2 Stunden gesucht..

Kurz nachdem ich hier geöffnet habe, doch was gefunden.

Ergebniss:

PHP-Code:
$content            preg_replace("/%(.*)%/e"'$dataArray[\'$1\']'$content); 
Falls noch jemand das Problem hat
Stephan22 ist offline   Mit Zitat antworten
Alt 21.10.2011, 17:48  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

1. Was Du da baust nennt sich Template-Engine
2. könntest Du in die Array-Keys auch einfach die % mit hineinschreiben und dann str_replace verwenden.
3. eine einfache Schleife wäre auch gegangen. Es müssen nicht zwingend immer reg. Expr. sein
4. Dateiinhalte bekommst Du einfacher mit file_get_contents

Das ist eher was für den Einsteigerbereich.

[MOD: verschoben]
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 21.10.2011, 17:58  
Neuer Benutzer
 
Registriert seit: 20.10.2011
Beiträge: 10
PHP-Kenntnisse:
Fortgeschritten
Stephan22 befindet sich auf einem aufstrebenden Ast
Standard

1. falsch
2. okay das stimmt, aber % sieht immer komisch im Array aus
3. die schleife geht nur wenn ich % mit ins array schreibe. Da ansonsten die platzhalter-namen nicht bekannt sind
4. das stimmt wohl
Stephan22 ist offline   Mit Zitat antworten
Alt 21.10.2011, 18:02  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
1. falsch
Nö.
Zitat:
3. die schleife geht nur wenn ich % mit ins array schreibe. Da ansonsten die platzhalter-namen nicht bekannt sind
Nö.

PHP-Code:
foreach ($foo as $placeholder => $value) {
  
$text str_replace ('%' $placeholder '%' $value $text);

__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 21.10.2011, 18:03  
Neuer Benutzer
 
Registriert seit: 20.10.2011
Beiträge: 10
PHP-Kenntnisse:
Fortgeschritten
Stephan22 befindet sich auf einem aufstrebenden Ast
Standard

1. Das bedeutet, wenn ich eine XML Datei auslese, dort die Platzhalter ersetze und das an eine Schnittstelle sende, nennt man dies Template-Engine? Ok

3. Ja das ginge wohl *g*
Stephan22 ist offline   Mit Zitat antworten
Alt 21.10.2011, 18:07  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zumindest entspricht das Ersetzen von Platzhaltern mit Payload dem, was man gemeinhin als „Templating (principle)“/Template processing o.ä. versteht.

http://en.wikipedia.org/wiki/Template_processor
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 21.10.2011, 18:11  
Neuer Benutzer
 
Registriert seit: 20.10.2011
Beiträge: 10
PHP-Kenntnisse:
Fortgeschritten
Stephan22 befindet sich auf einem aufstrebenden Ast
Standard

Es hat vielleicht ähnlichkeit. Es ist aber keine Template-Engine -_-
Stephan22 ist offline   Mit Zitat antworten
Alt 21.10.2011, 18:15  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Nenn es Pattern oder wie auch immer, das Prinzip heißt Template(-basierte Verarbeitung) und das verarbeitende Prozesselement Template engine (oder - prozessor … siehe Link).
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] PDF im Browser Streamen PiXeL1337 PHP Einsteiger 22 08.09.2011 16:24
[Erledigt] Mehrdimensionalem Array umformen, Index neu setzen und anschließend sortie wooha PHP Einsteiger 3 26.04.2011 12:08
Array aus SQL Abfrage zusammenbauen um es rekursiv abzuarbeiten litterauspirna PHP Einsteiger 7 01.02.2011 18:44
Array werte zusammen rechnen fabi288 PHP Einsteiger 13 03.01.2011 16:08
mehrdimensionales array inhalte tauschen pidaman PHP Tipps 2010 18 27.08.2010 16:58
Feed in Datenbank eintragen (Formate: json, php serialized, xml) high_five Datenbanken 5 17.06.2010 03:04
[Erledigt] Sortierung mehrerer Arrays philosapiens PHP Tipps 2010 16 08.06.2010 05:22
IE8 verliert Session Lenki PHP-Fortgeschrittene 10 25.04.2010 01:10
[Erledigt] Problem bei update mit array feldern fulltilt PHP Tipps 2010 6 13.02.2010 00:59
[Erledigt] Tabellen die sich selbst referenzieren Squall PHP Tipps 2009 19 04.08.2009 21:33
Array umwandeln von zwei zu mehrdimensional erselbst PHP Tipps 2009 6 02.04.2009 23:30
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:18 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum