Autor | Zpráva | ||
---|---|---|---|
Sylar Profil |
Zdravím,
pracuji s wordpressem, s pluginem qTranslate, který dovoluje multijazyčnost ve WP. Texty jsou uloženy v databázi takto: <!--:de-->Hello world DE<!--:--><!--:en-->Hello world EN<!--:--> Snažím se vytvořit regulární výraz který vytáhne jednak označení jazyka - tedy de a en a zároveň samotné texty, tedy Hello world DE a Hello world EN . Vytvořil jsem toto, ale vůbec nevím jak vyřešit střední část reguláru (.*?), ve které může být v podstatě jakýkoliv znak, kromě sekvence po sobě jdoucích znaků <!--: . preg_match('/<!--:(a-z){2}-->(.*?)<!--:-->/i', $titulek, $matches); Může mě prosím někdo popostrčit? |
||
Tori Profil |
#2 · Zasláno: 19. 1. 2014, 19:56:39
1. pro kód jazyka má být
([a-z]{2})
2. funkcí preg_match_all vytáhnete všechny překlady do jednoho pole. |
||
Sylar Profil |
#3 · Zasláno: 19. 1. 2014, 20:03:24
Tori:
díky, upravil jsem, ale v matches se mi zobrazí pouze pole se třemi prázdnými indexy [0], [1] a [2] |
||
peta Profil |
Sylar: Priste zkus napsat cely priklad, jak to mas. Fungujici, uz v prvnim prispevku.
Upravil jsem to podle Tori a zda se, ze to funguje. <?php $str = "<!--:de-->Hello world DE<!--:--><!--:en-->Hello world EN<!--:-->"; preg_match_all('/<!--:([a-z]{2})-->(.*?)<!--:-->/i', $str, $matches); echo '<pre>'; print_r($matches); ?> Array ( [0] => Array ( [0] => Hello world DE // puvodni html odpovidajici reg vyrazu <!--:de-->Hello world DE<!--:--> (kdyz si das zobrazit zdrojovy kod stranky v prohlizeci) [1] => Hello world EN ) [1] => Array ( [0] => de // zavorka 1 [1] => en ) [2] => Array ( [0] => Hello world DE // zavorka 2 [1] => Hello world EN ) ) |
||
Sylar Profil |
#5 · Zasláno: 20. 1. 2014, 13:00:24
peta:
díky, funguje |
||
Časová prodleva: 10 let
|
0