Nahrazení znaků v určitém bloku kódu – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Nahrazení znaků v určitém bloku kódu – PHP – Fórum – Programujte.comNahrazení znaků v určitém bloku kódu – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
wise0
Stálý člen
5. 4. 2009   #1
-
0
-

Dobrý den.

Mám na Vás dotaz, zda-li to jde nějak udělat.

Vezmu to konkrétně.

je kód:

<br>

<font size="15">AHOJ<br></font>
<div style=muj styl>
blabla<br>
blabla<br>
blabla<br>
</div>
Ahhhhooooj<br>


Lze nějak vymazat (resp. nahradit za "") tag <br> POUZE uvnitř divu muj styl?

mimo div by zůstal. Ale uvnitř by nebyl.
Köd vypisuji z databáze pomocí jednoho selectu a ukládám pomocí jednoho rich textboxu.

Díky za rady

Nahlásit jako SPAM
IP: 81.25.16.–
"Život by byl mnohem jednodušší, kdybychom k němu měli zdrojový kód..."
Reklama
Reklama
netman920
Super člen
5. 4. 2009   #2
-
0
-
Nahlásit jako SPAM
IP: 87.244.226.–
tommmyy
~ Anonymní uživatel
3 příspěvky
5. 4. 2009   #3
-
0
-

http://cz2.php.net/manual/en/function.preg-replace.php

stačí umět základy regulárních výrazů

Nahlásit jako SPAM
IP: 213.192.60.–
wise0
Stálý člen
5. 4. 2009   #4
-
0
-

Samozřejmě že vím o str_replace nebo o metaznacích, ale jde o to, že potřebuju nahradit tagy jen OD .. DO

např.



<br>
<br>
// tyhle 2 tagy nechat
<br>
<br>
// tyhle 2 nahradit
<br>
<br>
// tyhle nechat



s tím, že ty, které chci nahradit jsou označeny tagem <pre></pre>

Nahlásit jako SPAM
IP: 89.176.199.–
"Život by byl mnohem jednodušší, kdybychom k němu měli zdrojový kód..."
bukaj_0010
Věrný člen
5. 4. 2009   #5
-
0
-

wise
s tím, že ty, které chci nahradit jsou označeny tagem <pre></pre>
Nejjednodušší způsob, který mě napadá, je projíždět kód po řádcích:

function remove_breaks($str)

{
$opened = 0;
$ret = array();

foreach (explode("\n", $str) as $line) {
if (preg_match('~<pre.*>~', $line)) {
$opened++;
}

if ($opened > 0) {
$line = preg_replace('~<br>~', '', $line);
}

$ret[] .= $line;

if (preg_match('~</pre>~', $line)) {
$opened--;
}
}

return implode("\n", $ret);
}

Jednoduše řečeno jde o to, si hlídat, kdy se tag otevírá, kdy zavírá a kolikrát byl otevřen. A pokud je otevřen, mažou se „<br>“, pokud není, nemažou se. Jak prosté. Samozřejmě bacha na okrajové případy, kdy máme řádek kupř. „<br><pre>…“, nebo „…</pre><br>…“ – i když je „<br>“ vně, bude nahrazeno. Však základ máš, hrej si.

Říkal jsem si, že do jedenácti budu v posteli spát a už zase přetahuju :-)

Nahlásit jako SPAM
IP: 88.101.128.–
Jak se správně ptát? -> http://www.hash.cz/inferno/otazky.html[br][br] Po programování je člověk hladovej.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 24 hostů

Podobná vlákna

Nahrazení znaku v byte poli — založil trambo

Nahrazení znaků mezi tagy — založil Zuben

Zvíraznenie bloku — založil Jojo

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý