Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrażenia regularne
Forum PHP.pl > Forum > PHP
Wankster
Mam sobie jakiś tekst, a w nim między innymi takie coś : {DATE:d/m/Y, H:i:s}.

Teraz chcę za pomocą php zamienić {DATE:format} na aktualną datę o formacie takim jaki jest tutaj : {DATE:(.*)} i wyświetlić całość na stronie...

Próbowałem to zrobić ponad 1h, ale nie wyszło sad.gif Albo dublował wszystko i wyświetlał po 2 te same rekordy, albo cały rekord wsadzał do date() i zamieniał na aktualny czas laugh.gif
Jabol
a może po prostu[php:1:59eea46f1d]<?php
$text=str_replace('{DATE:', '', $text);
$text=str_replace('}', '', $text);
//albo dla dłuższych textów
$text=ereg_replace('([a-zA-Z0-9_iwszystkieuzywaneznaki])+{DATE:', '', $text);
$text=ereg_replace('}([wszystkieznaki])+', '', $text);
?>[/php:1:59eea46f1d]
drugi sposób może nie działać, bo nie mam przy sobie akurat artykułu o wrażeniach regularnych sad.gif
maggot
sprobuj cos, mniej wiecej, takiego:
[php:1:1884665213]<?php
echo $str = "jakistam tekst {DATE:Y/Y/Y, H:i:s} ciag dalszy<br>";
echo $str = preg_replace("/(.*){DATE:([a-zA-Z0-9/, :]*)}(.*)/e","'1 '.date('2').' 3'", $str);


// wynik:
//jakistam tekst {DATE:Y/Y/Y, H:i:s} ciag dalszy
//jakistam tekst 2003/2003/2003, 21:39:32 ciag dalszy

?>[/php:1:1884665213]
Jabol
Cytat
[php:1:3b25dd9601]<?php
echo $str = preg_replace("/(.*){DATE:([a-zA-Z0-9/, :]*)}(.*)/e","'1 '.date('2').' 3'", $str);  
?>[/php:1:3b25dd9601]
a teraz prosze o komentarz i wytłumaczenie krok po kroku (głównie chodzi mi o te znaki type 1, 2, 3)
FiDO
"/(.*){DATE:([a-zA-Z0-9/, :]*)}(.*)/e"

Kazde 1 2 itd. jest zamieniane na wszystko co zostalo "wylapane" przez kolejne nawiasy okragle (sa pogrubione) w wyrazeniu regularnym.
Wankster
Dzięki Ci bardzo maggot!
Jabol
lol, to jest coś niezłego...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.