Regex kérdés
Adott egy css dokumentum amiben random pozícióban vannak a lentiekhez hasonló sorok
id1:id2:tetszőleges karakter sorozat
és
id1:tetszőleges karater sorozat
Az "id1"-et és "id2"-t kell helyettesíteni session változókban levő értékekkel.
Mi lenne itt az elegáns megoldás, hogy ne kelljen kétszer is végig szaladni a dokumentumon (id2 aztán id1 replace)?
Nem vagyok sajnos egy regex mágus, gondolom lehet írni rá egy csinos mintaillesztést.
Köszi a segítséget.
■ id1:id2:tetszőleges karakter sorozat
és
id1:tetszőleges karater sorozat
Az "id1"-et és "id2"-t kell helyettesíteni session változókban levő értékekkel.
Mi lenne itt az elegáns megoldás, hogy ne kelljen kétszer is végig szaladni a dokumentumon (id2 aztán id1 replace)?
Nem vagyok sajnos egy regex mágus, gondolom lehet írni rá egy csinos mintaillesztést.
Köszi a segítséget.
Nem próbáltam ki
:
követ, majd ezt opcionálisan mégegyszer, majd még a maradék szöveget.Köszi , elgondolkodok rajta
Nem akarok pofátlan lenni, de egy preg_replace esetén hogyan nézne ki a teljes hívás, ha $x, és $y változó tárolja az "id1" és "id2" helyére behelyettesítendő értékeket? Megoldható egyáltalán preg_replace-el?
Tehát mondjuk:
$x="stop";
$y="/start";
Sorok a css fileban:
background-image:url(id1:id2:/images/bikkmakk.png);
background-image:url(id1:/images/bikkmakk.png);
És ezt szeretném kapni:
background-image:url(stop/start/images/bikkmakk.png);
background-image:url(stop/images/bikkmakk.png);
Sajna elég ritkán kell regexhez nyúlnom, és emiatt minden alkalommal szívok vele.
Nem tudom
Miért kell ehhez regex? Ez
Legelegánsabb
A nagyon alap dolgokkal
Mind másik
Ha nem megy egy replace-el, csináld kettővel, és mindig amennyire lehet, cache-elj, hogy ne kelljen ugyanazt sokszor legyártani.
Bár igazából nem nagyon értem, hogy PHP-ból miért is kell CSS-t átírni. Ott már valami baj van szerintem.
Másrészt mivel a keresőknek majdnem mindegy a kinézet, csak a Júzernek számít, ezt meglépheted kliensoldali js-el is, hogy adott azonosítójú elemekre ráakasztod a másik azonosítójú CSS cuccost. Pl. sQuery-vel. Persze nem mindegy, hány ilyen van, de lévén id-kről szó, felteszem, hogy nem sok.
Egy skin-ezési rendszeren
Mindemellett más paraméterek is beleszólnak.
A későbbiekben majd talán valami c#-ban írt toolal fogom előre kigenerálni a css-ek nagy részét, de jelen pillanatban kell valami ami tényleg dinamikusan módosítja a képek elérési útvonalát.
A fentiek fényében mi jöhetne szóba egy ilyen rendszernél?
Hát...
Nemigazán látom át ennyiből a működést, de nem lehet úgy megoldani a problémát, hogy (és / vagy):
Azt nem egészen értem, hogy a CSS-ben levő képek miért nem a te szervereden vannak a CSS-el együtt. OK, 3rd party layout, de ettől még nem kell neki máshol laknia...
Szerintem az jöhet szóba, hogy jól átnézed és kijavítod a skineket, magadnál tartod, és csak a helyes skin kiválasztását oldod meg PHP-ból, a skinek fájljai kvázi statikusak. (Persze ha pl. arra van szükség, hogy xy tartalom háttérképe naponta más legyen, akkor pedig a css-ben hivatkozott fájl helyére másolsz naponta másikat.)
A 3rd party tartalmak a saját
Ami miatt problémás, hogy elég gyorsan cserélődnek a médiatartalmak, ráadásul van ahol képi szinten van lokalizált (nyelvi/területi) tartalom.
Írok egy példát: van egy általános angol nyelvű media set, tartalmaz minden általános elemet ami az átlag US/UK/CAN/AUS usernek kell. Van benne egy default image ami azt mondja hogy "Visit our office!"
Azonban pár elem eltér országonként mert az ottani office hivatkozni akar a konkrét helyre. Mondjuk a banner azt mondja, hogy "Visit our office in New York!".
De nem minden ország akar ilyet, hanem mondjuk csak (html)szövegben akar eltérni.
Persze mindemellett vannak specifikus js, css, html, json fileok is néha. Itt a hangsúly a néhán van, a nagy része teljesen megegyező a sitenak minden 3rd party esetén. És persze kell css/js merge...
Ha ehhez hozzáadod a nyelvi kérdéseket (mondjuk Kanadában francia+angol), és azt hogy a bontás sokkal kisebb egységekben történik mint ország, elég nagy a variációk száma.
Mivel amolyan egy emberes hadseregként küzdök ezzel a komplexebb feladattal az hogy fejlesszek és mellett tartalmat(css/média) is menedzseljek kizárt. Ezért tűnik nekem jobbnak kódból megoldani az elérési útvonalak kikalkulálását és a fallbacket.
Persze ez elvesz az oldal sebességéből így az sem kizárt - régebben már írtam itt ezzel kapcsolatban talán - hogy a vége egy apache modul lesz, ami a kérések, és a fájlrendszer feltérképezése (meg némi cache) alapján rout-ol.
Így érthetőbb
Ha erre külön Apache-modult írsz, egy cikk formájában érdekelne, valószínű akkor érteném egész pontosan, de így is "kapisgálom" már.
Sokszor olyan igényei vannak
Sokszor pedig nem is szövegről van szó, csak egyéb kép elemekről, egyik mondjuk keresztény és galambot akar rá, a másik meg hindu, és tehenet, de mindkettőnek bejön a felhők közül kitörő volumetrikus fény (mint default).
Ha kitart addig a projekt, hogy neki tudok állni a modulnak, akkor ígérem beszámolok szenvedéseimről. :)
Az jó lesz