[ Dag @ 14.09.2003. 19:21 ] @
| Treba da konvertujem html u tekst.
<blockquote>
Line 1
Line 2
Line 3
Line xyz
</blockquote>
ili
<blockquote>
Line 1
Line 2
Line 3
Line xyz
</blockquote>
u
____Line 1
____Line 2
____Line 3
____Line xyz
________
Problem: kolichina linija u <blockquote> je proizvoljna.
Hvala unapred. |
[ _owl_ @ 14.09.2003. 22:36 ] @
Cisto da znas resenje ne zavisi od broj linija izmedju <blockquote> tagova

)
Ono sto tebi treba je ili jedan lep regularni izraz (ovde sigurno postoje ljudi
koji bi bili ljubazni i da ga napisu) ili mozes peske da ides od linije do linije i da testiras njen sadrzaj (da li sadrzi <blockquote> ili ne). Kada udjes u <blockquote> tag (to ces da registrujes u posebnoj promenljivoj) onda na pocetak svake linije koja ne sadrzi </blockquote> treba da dodas ___. Kada naidjes na liniju koja sadrzi </blockquote> onda si zavrsio sa parsiranjem. Posto sve ovo iskodiras mozes da se pridruzis cika Biliju u pisanju vrhunskih programa (ma programskih paketa bre

)
[ bOkIcA @ 14.09.2003. 22:57 ] @
Code:
$trt = preg_replace("/(.*)(<blockquote>)(.*)(<\/blockquote>)(.*)/s","\\3",$trt);
[ bOkIcA @ 15.09.2003. 00:41 ] @
Nisam video da treba da se doda '___' ispred svakog...
...evo ovako bi moglo:
Code:
$trt = "<blockquote>
Line 1
Line 2
Line 3
Line xyz
</blockquote>";
function _jej($jeste){
return preg_replace("/([^(\r|\n|\r\n)]+[(\r|\n|\r\n)]+)/", "___\\1",$jeste[1]);
}
$trt = preg_replace_callback("/<blockquote>(.*?)<\/blockquote>/s", '_jej',$trt);
echo $trt;
[ Dag @ 15.09.2003. 03:05 ] @
Hvala bokice.
Veci deo problema je kako napisati
$trt = "<blockquote>
Line 1
Line 2
Line 3
Line xyz
</blockquote>";
?
Nishta slichno ovome mi ne radi:
$trt = preg_replace("'<blockquote[^>]*?>.*?</blockquote>'si", "", $str);
ili
$trt = preg_replace("'<blockquote[^>]*>.*</blockquote>'si", "", $str);
A ovo je jako elegantno (funkcija kao range / masiv):
$trt = preg_replace_callback("/<blockquote>(.*?)<\/blockquote>/s", '_jej',$trt);
[ Dag @ 15.09.2003. 03:08 ] @
Hvala Owl:)
Ja to odlichno umem da napishem na 10 nachina u vb(a). Ovde je sve nekako komplikovanije (a kada se napishe, u stvari, jednostavnije).
[ bOkIcA @ 15.09.2003. 05:16 ] @
Sad ja nisam shvatio.
Jel ti to resava problem ili ne?
[ Dag @ 15.09.2003. 10:21 ] @
Citat:
bOkIcA:
Sad ja nisam shvatio...
Da. Sve je ok. Kod:
Code:
$str = implode('',file($myURL));
function bckRepl($str){
return preg_replace("/([^(\r|\n|\r\n)]+[(\r|\n|\r\n)]+)/", "____\\1",$str[1]);
}
$str = preg_replace_callback("/<blockquote>(.*?)<\/blockquote>/s", 'bckRepl',$str);
echo '<pre>' . $str . '</pre>';
Veliko hvala bOkIcA.
[ bOkIcA @ 15.09.2003. 10:24 ] @
Aaaa, sto mi izmenja moje lepe promenjive?! trt, mrt, jes i ostale
...ma salim se, i nema na cemu.
[ Dag @ 18.09.2003. 03:19 ] @
Pa morao sam da promenim bre:)) A kakav si ti sa engleskim? Evo isti problem samo tezha varijanta (ako English ne ide, slobodno reci - bio mi gotov tekst):
Konvertirati HTML to tekst - ceo output izmedju <pre> i </pre>
Headings
1. All headings (H1-6) are to be indented from left for 8 empty spaces.
2. All headings (H1-6) are to be indented from the top for 2 paras (/n).
2.1. Headings (H1-6) with class 'phead' [<Hx class="phead *.*"*.*>] are to be indented from the top for 1 para (/n).
3. All headings (H1-6) are to be indented from the bottom for 1 para (/n).
4. All headings (H1-6) which are contained <br> inside are to be 'cuted' in lines (lines quantity = <br> quantity) and each line is to be indented from the:
- left for 8 empty spaces;
- top no indent;
- bottom no indent;
- group-top for 1 para (/n);
- group-bottom for 1 para (/n).
5. IF wordwrap (76) break some line inside any [<H1-6>*.*</H1-6>], the second ('broken') line should be intented also (8 empty spaces) but only up to 76 - if break again, the same.
Eto tako...
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.