php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.01.2009, 15:43  
Benutzer
 
Registriert seit: 09.01.2008
Beiträge: 82
Lavalampe befindet sich auf einem aufstrebenden Ast
Standard preg_replace: Gleiche Platzhalter im Pattern

Code:
Pattern: "<(.*?)>(.*?)</(.*?)>"
Ja: "<foo>bar</foo>"
Nein: "<foo>bar</fuu>"
Ich hoffe, dass was ich vorhabe ist möglich. Platzhalter 1 und 3 sollen den gleichen Wert haben.

Wie muss man die erste Zeile verändern, dass ein Ergebnis wie in der zweiten Zeile zustande kommt?
Lavalampe ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 16.01.2009, 16:10  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Du kannst back references verwenden.
PHP-Code:
<?php
$pattern
'!<(.*?)>(.*?)</\\1>!';

foreach( array(
'<foo>bar</foo>''<foo>bar</fuu>''<foo>bar</fuu><a>...</foo>''<foo>bar</fuu><foo>...</foo>') as $s ) {
  echo 
$s' ';
  if (
preg_match($pattern$s$m)) {
    echo 
' -> ['$m[2], "]\n";
  }
  else {
    echo 
"nein\n";
  }
}
Zitat:
<foo>bar</foo> -> [bar]
<foo>bar</fuu> nein
<foo>bar</fuu><a>...</foo> -> [bar</fuu><a>...]
<foo>bar</fuu><foo>...</foo> -> [bar</fuu><foo>...]

Geändert von David (16.01.2009 um 16:14 Uhr).
David ist offline  
Alt 16.01.2009, 21:08  
Benutzer
 
Registriert seit: 09.01.2008
Beiträge: 82
Lavalampe befindet sich auf einem aufstrebenden Ast
Standard

Ah gut.

Bei der Gelegenheit würde ich noch wissen, was die ganzen Pre- und Suffixe im Pattern machen. Bis jetzt kenne ich /, # und !
Machen die alle das selbe oder gibts da Unterschiede?
Lavalampe ist offline  
Alt 16.01.2009, 21:11  
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

Das nennt sich "Delimiter" und du kannst dafür jedes nicht alpha-numerische Zeichen verwenden. Eine spezielle Bedeutung haben die verschiedenen Zeichen aber nicht.
agrajag ist offline  
Alt 16.01.2009, 21:38  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
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

… Idealerweise benutzt man aber ein Zeichen, das selten im Ausdruck vorkommt, um möglichst wenig escapen zu müssen.
__________________
--
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  
Alt 16.01.2009, 21:42  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
… Idealerweise benutzt man aber ein Zeichen, das selten im Ausdruck vorkommt, um möglichst wenig escapen zu müssen.
Dafür bietet sich auch die Escape Funktion an: preg_quote( ).

Aber generell geb ich dir Recht nikosch.
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz 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
Singleton Pattern Verstaendisproblem Luka PHP Tipps 2008 13 19.12.2008 19:00
PHP Command Pattern = Module? meGa Software-Design 4 14.12.2008 12:35
[Erledigt] Formularvalidierung, preg_match pattern Problem moveax1 PHP Tipps 2008 4 12.12.2008 16:48
Design Pattern Harry B. Software-Design 7 02.09.2008 20:49
Bild vor Link pattern TimmaY PHP Tipps 2007 5 21.03.2007 18:06
[Erledigt] Design Pattern - MySQL Sitzung in allen Objekten nutzen PHP-Fortgeschrittene 21 28.04.2005 22:18
Platzhalter gesucht PHP Tipps 2005 5 19.03.2005 16:06
Folgendes Pattern PHP Tipps 2005 5 01.03.2005 12:41
Probleme mit Pattern bei Templateersetzung RudiS PHP-Fortgeschrittene 2 19.02.2005 22:09
platzhalter in query ersetzen flyingeagle Datenbanken 4 12.01.2005 10:40
Pattern Syntax Problem mit MulitLine PHP Tipps 2004-2 2 21.12.2004 15:53
replace-Funktion für Platzhalter/ php-Code in html PHP Tipps 2004-2 1 11.12.2004 19:40
file_exists mit Platzhalter? RoDa PHP Tipps 2004 24 02.11.2004 12:55
Platzhalter juhuwoorps Datenbanken 4 07.09.2004 11:37
preg_match --> pattern PHP Tipps 2004 4 27.08.2004 18:12

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
preg_replace platzhalter, preg_replace pattern, preg_replace, php preg_replace platzhalter, php str_replace platzhalter, preg_replace php, php preg_replace wildcard, php str_replace wildcard, preg_replace wildcard, preg_replace platzhalter php, str_replace platzhalter, preg_replace von bis, php platzhalter, php preg_replace pattern, preg_replace beispiel platzhalter, php preg_replace mit platzhalter, preg_replace @ wildcard, php preg_replace wildcards, http://www.php.de/php-einsteiger/50754-preg_replace-gleiche-platzhalter-im-pattern.html, preg_replace pattern /im

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