KajmaczeK | 2021-02-17 10:26:09 UTC | #1
Cześć,
mam w bazie string. W stringu chcę umieścić zmienną $s[‘costam’]. Zapisuję ją w taki sposób: |s+costam|. Pobieram tą wartość, przypisuję stringa do zmiennej, za pomocą preg_replace zmieniam wszystko w formacie |x+xxx| na $x[‘xxx’]. Wyświetlam tego stringa na stronie… I wyświetla $s[‘costam’]. Co zrobić, żeby mi wyświetlało wartość tej zmiennej?
W kodzie:
Baza danych:
| key | value |
-----------------------------------------
| cos | cos cos cos cos cos |s+cos| cos |
W pliku:
$q = mysqli_query(...)
while($a = mysqli_fetch_array($q)) {
$l[$a['key']] = $a['value'];
}
foreach($l as $key => $value) {
$value = preg_replace('/\\|(\\w+)\\+(\\w+)\\|/i', '$\\1["\\2"]', $value);
$l[$key] = $value;
}
echo $l['cos'];
Output:
cos cos cos cos cos $s["cos"] cos
A chcę, żeby było (załóżmy, że $s[“cos”] = NIC):
cos cos cos cos cos NIC cos
No i tak.
Nie wiem, jak to wyraźniej wytłumaczyć :/
Pozdrawiam,
KK
DarkDev | 2016-11-14 17:35:22 UTC | #2
Tutaj taki tutek ;)
Tutek
A jeśli nie wiesz jak coś wytłumaczyć to opisz to dokładniej (co miało by robić itp.)
Myślę że jakoś pomogłem :P
KajmaczeK | 2016-11-14 17:44:20 UTC | #3
Dobra, spróbuję inaczej wytłumaczyć.
Mam taki kod:
$array = ["ipsum" => "IPSUM"];
$string = "lorem lorem lorem lorem lorem lorem |array+ipsum| lorem lorem";
Potrzebuję zmienić |array+ipsum|
na zmienną $array["ipsum"]
- czyli wynik po wyświetleniu ma być taki:
lorem lorem lorem lorem lorem lorem IPSUM lorem lorem
Na razie wychodzi mi tak:
lorem lorem lorem lorem lorem lorem $array["ipsum"] lorem lorem
Kod:
$string = preg_replace('/\\|(\\w+)\\+(\\w+)\\|/i', '$\1["\\2"]', $string);
(wszystko w formie |xx+xxx| zmienia na $xx[“xxx”])
system | 2021-02-17 10:26:30 UTC | #4
Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.