Stránka 1 z 1
PHP pomoc s regexem
Napsal: 28 dub 2011 00:27
od kennyz
Zdravim,
už několik hodin hledám a zkouším a stále nic, co by mi fungovalo podle toho co potřebuju :(
Mám jednoduše nějaký string např.:
Kód: Vybrat vše
$text = "Nějaký *tučný* text <pre class="neco">...</pre> další *tučný* text";
a teď

... potřebuju přes regex (nebo jakkoli, hlavně né cyklus), udělat to, že se vezme celý text, krom toho <pre>..</pre> a kde je *tučný* tak nastaví na <strong>tučný</strong>.
Problém je, že já tohle mám, ale zasahuje mi to i do toho obsahu <pre> což nechci a to nevim jak udělat..
současný regex a vlastně celej vstup, mám jako:
Kód: Vybrat vše
$text = "vstupní dlouhý text";
$text = preg_replace('/\*(.+)\*/', '<strong>$1</strong>', $text);
Tak doufám, že se někdo najde, kdo by věděl

Re: PHP pomoc s regexem
Napsal: 28 dub 2011 08:35
od CZechBoY
co třeba přes Str_replace přehodit <pre za <strong ?
$pattern='/\*(.+)\*/' tim zjistíš co je mezi hvězdičkama *zjišťuji*
$pattern='/<pre.*>(.+)<\/pre>/' ti zjistí co je uvnitř tagu PRE: <pre..>zjišťuji tento text</pre>
Re: PHP pomoc s regexem
Napsal: 28 dub 2011 10:09
od kennyz
To vim, ale na <pre...</pre> nemůžu sáhnou ani nijak měnit, prostě potřebuju nějak vybrat vše, mezi záčátkem až do značky "<pre class=" a tam změnit to co jsem psal, čili *bold* za <strong>bold</bold>
to samé potom na konci, od konce </pre> až do opet zacátku <pre class= a na konec od konce </pre> do konce stringu
mám treba:
Kód: Vybrat vše
$string = "
začátek *bold* něco
<pre class="xy">neco</pre>
další text *bold* něco
<pre class="xy">neco</pre>
konečný text *bold* a tečka.
";
a nějak nemůžu přijít na to, aby to zaměnilo vsechny *bold* v textu za <strong>bold</strong> a zárověn preskakovalo vsechno mezi zanačkama <pre .. </pre> včetně značek
Tohle řešim, takže nějak asi neruzumim, proč bych měl zjistovat, co je mezi <pre>, když to mi bude kničemu :))
--- Doplnění předchozího příspěvku (Čtv Dub 28, 2011 1:37 pm) ---
To nikdo neví?? :(
Re: PHP pomoc s regexem
Napsal: 28 dub 2011 14:25
od CZechBoY
jsem snad něco psal ne?
$pattern='/*(.+)*/' to ti vrátí text mezi hvězdičkama *text*
$pattern='/(.+)<pre class=.+>.+<\/pre>(.+)/' ti vrátí co je před PRE a co je za PRE
Re: PHP pomoc s regexem
Napsal: 28 dub 2011 15:25
od kennyz
Aha, jsem to nějak zkoušel podle toho cos napsal a nějak to nejde nebo nechapu jak by to mělo fungovat no :/
můžeš mi to prosímtě ukázat na tom prvotním příkladu stringu? :)
Re: PHP pomoc s regexem
Napsal: 29 dub 2011 20:24
od CZechBoY
ty potrebujes ziskat cisty text bez <pre>...</pre> aprehodit z * na <strong>?
tak jedine cyklus, jinak to asi nepujde :(
nebo ten pre je vzdy stejny? pak muzes pouzit Str_Replace a vyhodit ten pre a mas to pak lehke
Re: PHP pomoc s regexem
Napsal: 30 dub 2011 01:13
od kennyz
Jinak jo, jak si psal, získat vše krom <pre>...</pre> z textu a nahradit *...* za <strong>...</strong>
Ja uz nemam silu to dal resit, jsem to vyresil tak, že mam misto *bold* toto strong->text×
sice to bere i obsah <pre>, ale tento string tam nebude snad