Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zamiana daty w aktywny link
mb83
post
Post #1





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 2.02.2012

Ostrzeżenie: (0%)
-----


Witam,
Mam przykładowy tekst:
"Dzisiaj jest {2015-01-01} i nie pada śnieg"
i chcę napisać funkcję, która zamieni {2015-01-01} na <a href=/data/2015-01-01'>1 stycznia 2014 (czwartek)</a>.

czyli efekt będzie:
  1. Dzisiaj jest <a href=/data/2015-01-01'>1 stycznia 2014 (czwartek)</a> i nie pada śnieg


tylko nie wiem jak poprawnie skonstruować tą funkcję, która będzie wyszukiwać string, konwertować do formatu (1 stycznia ...) i zamieniać w link.

mam coś takiego tylko to jest dopiero początek i nie wiem co dalej:
  1. $pattern = '{2014-05-25}';
  2. $replacement = '<a href=\'2014-05-25\'>2014-05-25</a>';
  3. $subject = 'dzisiaj jest 2014-05-25';
  4. echo preg_replace($pattern, $replacement, $subject, -1 );


Można prosić o jakiś przykład? Będę wdzięczny za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mb83
post
Post #2





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 2.02.2012

Ostrzeżenie: (0%)
-----


generalnie będę zmieniał każdą datę w formacie {YYYY-MM-DD}.
A w jakiej kolejności tych funkcji używać?
Mam funkcję do zamiany dat na polskie nazwy:
  1. function dateV($format,$timestamp=null){
  2. $to_convert = array(
  3. 'l'=>array('dat'=>'N','str'=>array('Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota','Niedziela')),
  4. 'F'=>array('dat'=>'n','str'=>array('styczeń','luty','marzec','kwiecień','maj','czerwiec','lipiec','sierpień','wrzesień','październik','listopad','grudzień')),
  5. 'f'=>array('dat'=>'n','str'=>array('stycznia','lutego','marca','kwietnia','maja','czerwca','lipca','sierpnia','września','października','listopada','grudnia'))
  6. );
  7. if ($pieces = preg_split('#[:/.\-, ]#', $format)){
  8. if ($timestamp === null) { $timestamp = time(); }
  9. foreach ($pieces as $datepart){
  10. if (array_key_exists($datepart,$to_convert)){
  11. $replace[] = $to_convert[$datepart]['str'][(date($to_convert[$datepart]['dat'],$timestamp)-1)];
  12. }else{
  13. $replace[] = date($datepart,$timestamp);
  14. }
  15. }
  16. $result = strtr($format,array_combine($pieces,$replace));
  17. return $result;
  18. }
  19. }


tylko nie wiem w jakiej kolejności co i jak.

- pierwsze jest string, który ma w sobie szablon {YYYY-MM-DD}
- potem go trzeba znaleźć (jak?)
- potem skonwertować (dateV?)
- potem preg_replace_callback (jak użyć?)

dzięki za pomoc!
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 22:01