php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.08.2008, 18:00  
Erfahrener Benutzer
 
Registriert seit: 08.08.2008
Beiträge: 128
kerstel befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] alles was in klammer steht

Hallo zusammen,

ich habe foldenden code:

PHP-Code:
$_TplVars["lDelim"]="{";
$_TplVars["rDelim"]="}";
$_Lines file("datei.txt");
[
left
$search sprintf('!\%s(.*?)\%s!'preg_quote($_TplVars["lDelim"]), preg_quote($_TplVars["rDelim"])); 
 
foreach (
$_Lines as $values)
{
    
preg_match($search$values$_Regs);
}
 

echo 
"<pre>";
print_r($_Regs);[/left]
echo 
"</pre>"
Die datei.txt (Beispiel) sieht so aus:
Code:
Dies ist {$Test}, und das ist {Test $test}
Dies ist ein zweiter {$Test2}, und das ist {Test $test2}
Das Array $_Regs, sollte nun folgendes Ausspucken:

Code:
Array (
   0 => "$Test"
   1 => "Test $test"
   2 => "$Test2"
   3 => "Test $test2"
)
Ich bekomm aber nur ein leeres Array, hab auch schon an $search rumgeschraubt und bekomms net hin

Danke und Gruß
Kerstel
kerstel ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 11.08.2008, 18:33  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Lass dir mal $search ausgeben. Wahrscheinlich hast du die geschweiften Klammern "doppelt escaped".
Ich versteh nämlich nicht so ganz, wozu du vor die Prozentzeichen einen backslash setzt...

Außerdem musst du die RegEx dann wahrscheinlich noch auf "ungreedy" schalten, (Modifier: U)

(scheint so, als hätte dich der andere Thread nicht davon abgebracht deine eigene Template-Engine zu basteln )
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 11.08.2008, 19:37  
Erfahrener Benutzer
 
Registriert seit: 08.08.2008
Beiträge: 128
kerstel befindet sich auf einem aufstrebenden Ast
Standard

das ist der inhalt von $search:

!\\{(.*?)\\}!

/U hatte ich auch schon hintendran, keine Ahnung was falsch ist.

Nur weil andere anderer Meinung sind kann ich doch trotzdem rumspielen

Viele Grüße
Kerstel
kerstel ist offline  
Alt 11.08.2008, 19:57  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Zitat:
Zitat von kerstel Beitrag anzeigen
das ist der inhalt von $search:

!\\{(.*?)\\}!

/U hatte ich auch schon hintendran, keine Ahnung was falsch ist.
Wie ich schon gesagt habe: "doppelt escaped". Du hast zuviele Backslashes. Wozu soll der "\" vor %s dienen?

Zitat:
Nur weil andere anderer Meinung sind kann ich doch trotzdem rumspielen
Wenn's dir Freude macht *schulterzuck*
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 12.08.2008, 01:27  
Erfahrener Benutzer
 
Registriert seit: 08.08.2008
Beiträge: 128
kerstel befindet sich auf einem aufstrebenden Ast
Standard

jup macht es und wie

der \ vor %s ist dazu da, da { bzw. } ja eine funktion in regulären Ausdrücken hat. Hatte dabei aber vergessen, dass preg_quote das schon macht

jetzt hab ich den String:
!\{(.*?)\}! bzw.
!\{(.*?)\}/U!

geht aber trotzdem nicht
kerstel ist offline  
Alt 12.08.2008, 02:21  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
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

heißt ja auch
!\{(.*)\}!U

U und .*? ist doppelt gemoppelt. Das ? kehrt dann wieder in greedy um.
__________________
--
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 gerade online  
Alt 12.08.2008, 08:58  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Ausserdem überschreibst du $_Regs auf jeder Zeile wieder.
__________________
Gruss
L
lazydog ist offline  
Alt 12.08.2008, 09:29  
Erfahrener Benutzer
 
Registriert seit: 08.08.2008
Beiträge: 128
kerstel befindet sich auf einem aufstrebenden Ast
Standard

!\{(.*?)\}!U geht auch nicht

was heisst ich überschreibe $_Regs???
kerstel ist offline  
Alt 12.08.2008, 10:26  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von kerstel Beitrag anzeigen
was heisst ich überschreibe $_Regs???
Genau das. Bei jedem Durchgang wird es neu erstellt.
__________________
Gruss
L
lazydog ist offline  
Alt 12.08.2008, 10:28  
Erfahrener Benutzer
 
Registriert seit: 08.08.2008
Beiträge: 128
kerstel befindet sich auf einem aufstrebenden Ast
Standard

dann müsste ich doch aber zumindestens den letzten Wert im Array haben.

Kann man das Überschreiben verhindern?
kerstel ist offline  
 


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
formaler Standard für Dokumentationen von Klassen/Funktionen Simbo Off-Topic Diskussionen 10 19.10.2007 21:34
Speichern einer Telefonliste mit PHP in einer Datenbank timo_81 PHP Tipps 2008 30 07.09.2007 17:52
schließende Klammer finden wurtzel PHP-Fortgeschrittene 2 14.05.2006 19:59
KLammer soll wech aber darf net PHP Tipps 2005-2 6 29.07.2005 10:10
[Erledigt] Array-Übergabe in Funktion PHP Tipps 2005 1 08.05.2005 21:05
Ein klammer fehler PHP Tipps 2005 21 28.04.2005 10:48
wo ist die geschwunge Klammer janni PHP Tipps 2005 3 22.04.2005 08:24
nen prob mit der geschweiften - { - klammer PHP Tipps 2005 5 29.03.2005 15:07
zählen von "{" und "}" PHP Tipps 2005 4 25.01.2005 19:07
Mit PHP einen in ein Textfeld eingefügten Text aufsplitten?? PHP Tipps 2004 13 12.09.2004 14:45


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:50 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