![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 14.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam problem dotyczący użycia polecenia preg_replace, potrzebuje zrobić następującą rzecz :
Otrzymuje w zmiennej $kod - kod mający następujące formaty: Kod AL 100% Kod ZN 50%, AL 50% itp.... Kody pierwiastków mogą mieć od jednego do 3 znaków teraz mam tablice asocjacyjną z symbolami pierwiastków i ich nazwami Kod $source = array ( 'AL' => 'ALUMINIUM', 'ZN' => 'ZINCUM'); mam za zadanie wyświetlić wyłącznie przy użyciu polecenia preg_replace i podanych zmiennych coś takiego. AL 100% - ALUMINIUM 100% AL 50%, ZN 50% - ALUMINIUM 50%, ZINCUM 50% napisałem takie coś: Kod echo $textiles." - ".preg_replace ('/(\w+) (\d+)/', '$source[\'$1\']' ,$kod); ale niestety nie wyświetla się wartość o podanym indeksie. Otrzymuje coś takiego Kod AL 50%, ZN 50% - $source['AL']%, $source['ZN']% jak wyświetlić cyfrę odpowiadającą za procenty wiem. Problem w tym że nie mogę użyć zmiennej wewnętrznej polecenia preg_replace jako indeksu tablicy. Próbowałem z rożnymi zapisami, wtedy jednak otrzymuje takie błędy. Kod <b>Notice</b>: Undefined index: $1 in <span style="font-weight: bold;">xxxxxx</span><b>\index.php</b> on line <b>30</b> Kod <b>Notice</b>: Undefined index: \1 in <span style="font-weight: bold;">xxxxxx</span><b>\index.php</b> on line <b>30</b> itp. Może ktoś już się spotkał z takim problemem. Użycie innego polecenia lub kombinacji nie wchodzi w grę. Proszę o dokładne przeczytanie. Dziękuję za ewentualną pomoc. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 75 Pomógł: 4 Dołączył: 29.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Aby zamiennik był parsowany jako kod PHP, w wyrażeniu regularnym musisz użyć modyfikatora e:
Kod preg_replace('/wyrazenie/e', 'kod PHP', $tekst); Ponadto istnieje także funkcja preg_replace_callback(), gdzie wszystkie znalezione wystąpienia są kierowane do wskazanej funkcji PHP, która generuje zamiennik. Szczegóły odnośnie użycia modyfikatora znajdziesz tutaj: http://pl.php.net/manual/pl/reference.pcre...n.modifiers.php Ten post edytował Zyx 14.01.2009, 14:15:24 -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 14.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje bardzo za profesjonalną odpowiedź. Działa bez najmniejszego zarzutu.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.06.2025 - 18:16 |