php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.05.2008, 00:46  
Benutzer
 
Registriert seit: 04.03.2004
Beiträge: 50
Greezoo
Standard date in preg_replace

Hi Forum

Das erste mal seit langem wieder mal ein Post von mir. Ich hoffe, dass ich im richtigen Forum damit ankomme...?

Auch wenn mir regex oft noch ein Rätsel sind (), habe ich es doch geschafft, ein Pattern zu schreiben, welches (bis jetzt) wie erwartet funktioniert. Es soll mir aus einem String mit % markierte Wörter mit entsprechenden Array-Werten ersetzen (gefundene Strings dienen als Key). Nun möchte ich den Wert zusätzlich per date formatieren. Allerdings weigert er sich strikte, date noch auszuführen (trotz e am Ende des Search-Patterns, welches ja für den Array-Aufruf greift).
Gehe ich richtig in der Annahme, dass PHP hier lediglich den replace-Pattern als ausführbaren PHP-Code ansieht und deshalb die Ersetzung nicht vornimmt? Wenn ja, gibt es eine elegante Lösung, wie ich date ausführen lassen kann? Ich könnte das Datum auch gleich per Mysql formatieren lassen, allerdings hätte ich (wenn ich schon dran bin) gerne ne regex-Lösung.

Danke zum Voraus für Antworten!
PHP-Code:
<?php

function getOption($array,$value,$display)
{
    
$search '/\%(\w+)/e';
    
$replace '$array[\'\1\']';
    
$reg_value preg_replace($search,$replace,$value);
    
$reg_display preg_replace($search,$replace,$display);
    return 
'<option value="'.$reg_value.'">'.$reg_display.'</option>';
}

//Aufruf:
$werte = array();
$werte['eins'] = "value";
$werte['zwei'] = "blub";
$werte['drei'] = 978389940;

$option getOption($werte,"id_%eins","Der mit dem %zwei");
echo 
$option;
//<option value="id_value">Der mit dem blub</option>

$option getOption($werte,"das Datum: date(%drei)");
echo 
$option;
//<option value="id_value">das Datum: date(978389940)</option>

?>
Greezoo ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 24.05.2008, 07:18  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

date() ist ja nur ein String, warum sollte das klappen? Ich muss zugeben ich verstehe deine Ersetzungstechnik nur bedingt, benutz doch preg_replace_callback() und lass unerkannte Werte stehen, damit du dann nochmal strftime() oder date() drueberlaufen lassen kannst. Oder du zeichnest date() Werte speziell aus.
Zergling-new ist offline   Mit Zitat antworten
Alt 24.05.2008, 12:43  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Du hast das falsch verstanden. Der /e Parameter funktioniert nur, für Funktionen die im Replace angegeben sind. Zudem muß das Replace in sich dann ein gültiger Ausdruck sein. Sowas
Code:
das Datum: date($1)
würde also auch nicht funktionieren.
nikosch ist offline   Mit Zitat antworten
Alt 01.06.2008, 16:41  
Benutzer
 
Registriert seit: 04.03.2004
Beiträge: 50
Greezoo
Standard

Hallo zusammen

Vielen Dank für die Antworten. Beim nächsten Mal anschauen ist mir dann auch aufgefallen, dass alle Funktionen im Replace stehen müssen. Ich bin wohl davon ausgegangen (war ja schon spät, bzw. früh )
Da ich aber nicht den ganzen Aufruf nur für den Date-Fall umbauen möchte, habe ich das Datum per MySQL formatieren lassen.
Thema kann daher geclost werden!
Greezoo 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
Alter von Einträgen berechnen & ggf. entfernen (DATE) My PHP Tipps 2007 4 27.11.2005 19:11
Einfach Datepicker gesucht Cyberbob_at_tot PHP Tipps 2007 5 14.11.2005 09:10
date nixdorf PHP Tipps 2007 12 09.11.2005 09:33
[Erledigt] Freitag - Kopfschmerzen - Date Off-Topic Diskussionen 11 10.09.2005 18:00
probleme mit date funktion PHP Tipps 2005-2 8 02.08.2005 18:51
pg_convert und date ve.ru PHP-Fortgeschrittene 0 27.06.2005 16:28
datum deutsch $date = date ("m.d.y"); PHP Tipps 2005-2 5 24.06.2005 14:41
date PHP Tipps 2005 2 10.05.2005 14:41
abfrage date // zeitraum hekto Datenbanken 14 13.03.2005 11:30
date between abfragen hekto Datenbanken 3 09.03.2005 21:17
statt javascript new Date(); lieber mit php date PHP Tipps 2005 5 27.02.2005 16:55
Zeitverschiebung mit date() PHP Tipps 2005 4 25.01.2005 10:21
mit date auch die Uhrzeit in die Datenbank Datenbanken 1 15.12.2004 15:46
aus date jahr auslesen Datenbanken 12 11.11.2004 11:51
date() Ohrwurm83 PHP Tipps 2004 5 02.07.2004 14:36

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
preg_replace datum, php preg_replace datum, php preg_replace date, php datum preg_replace, preg_replace date, date deutsch pregreplace, preg_replace lange zahlen, preg_replace datum format, preg_replace datum mysql, php preg replace datum, ereg_replace datum, preg_replace php datum, wordpress plugin facebook events anzuzeigen, php datum formatieren preg, in preg_replace rechnen, php preg_replace german date fron date, preg_replace deutsches datum in us datum, preg_replace dateum formatieren, php preg replace ( ) $1 rechnen, preq_replace für datum

Alle Zeitangaben in WEZ +1. Es ist jetzt 11:26 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.