Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
Aq
HV kasutaja
liitunud: 01.01.2003
|
20.12.2013 10:39:38
PHP: osa väljalõikamine string'ist |
|
|
Mul on vaja töödelda PHP-ga HTML dokumenti nii, et lõigata sealt välja teatud osad. Uurisin veidi, kas on olemas lihtsat võimalust, kuidas ID järgi mõni HTML DIV plokk välja lõigata. Vist ei ole. Kui keegi teist teab, siis võib ka seda soovitada.
Küll aga hakkasin mõtlema ühe teise lahendi peale - kuna ka allikaks olev HTML kood on minu kontrolli all, siis mõtlesin, et paigutan väljalõigatavate plokkide ümber HTML kommentaaridena markerid. Ja on siis vaja lõigata välja kõik, mis jääb kahe markeri vahele.
Ehk siis, mul on vaja, et sellisest allikkoodist:
<div id="container">
<h1>Pealkiri</h1>
<div id="cutout">Siin väljalõigatav sisu, sh. tuleb arvestada, et see sisu on muutuv!</div>
<div id="info">Siia mingi sisu</div>
</div>
|
Oleks tulemus pärast PHP poolset töötlemist selline:
<div id="container">
<h1>Pealkiri</h1>
<div id="info">Siia mingi sisu</div>
</div>
|
Kas ma saan kuidagi selle lahendada kui teen HTML koodi näiteks selliseks:
<div id="container">
<h1>Pealkiri</h1>
<!-- marker -->
<div id="cutout">Siin väljalõigatav sisu, sh. tuleb arvestada, et see sisu on muutuv!</div>
<!-- marker -->
<div id="info">Siia mingi sisu</div>
</div>
|
Ehk siis - kõik mis asub markerite vahel eemaldada? Pole oluline, kas markerid ise jäävad string'i sisse või mitte.
|
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
Mnator
HV Guru
liitunud: 18.10.2007
|
20.12.2013 11:16:41
|
|
|
"... kuna ka allikaks olev HTML kood on minu kontrolli all..." viitab igatahes oma sisult sellele, et on olemas veel primaarsem allikmaterjal. Miks sa otse sealt oma infot ei võta?
|
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
 |
gynterk
HV kasutaja
liitunud: 17.01.2004
|
20.12.2013 11:34:03
|
|
|
HTMLi parsimiseks kasutatakse DOM-i. Kui mõned üksikud read, siis kasuta regulaaravaldisi.
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
 |
Aq
HV kasutaja
liitunud: 01.01.2003
|
20.12.2013 13:20:44
|
|
|
Tänud DOM viidete eest, vaatan neid mingi hetk. Siiski, suutsin ühel väga koledal viisil ka juba soovitud tulemuse saavutada Aga ehk saab DOM'iga asja optimaalsemaks.
|
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
kullar
HV kasutaja

liitunud: 26.11.2006
|
|
Kommentaarid: 27 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
25 |
|
tagasi üles |
|
 |
19Mart94
HV kasutaja
liitunud: 22.06.2010
|
21.12.2013 03:21:48
|
|
|
php:
|
<?php $html = ' <div id="container"> <h1>Pealkiri</h1> <div id="cutout">Siin väljalõigatav sisu, sh. tuleb arvestada, et see sisu on muutuv!</div> <div id="info">Siia mingi sisu</div> </div> '; ?>
|
NB! See ei tööta, kui väljalõigatav div sisaldab div elemente.
|
|
Kommentaarid: 33 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
31 |
|
tagasi üles |
|
 |
EvilRms
HV vaatleja
liitunud: 30.06.2007
|
23.12.2013 12:02:10
Äkki abiks |
|
|
php:
|
<?php $html = ' <div id="container"> <h1>Pealkiri</h1> <!--loika--> Siin väljalõigatav sisu, sh. tuleb arvestada, et see sisu on muutuv! <!--loika--> <div id="info">Siia mingi sisu</div> </div> '; $textValjasta = explode("<!--loika-->", $html); echo $textValjasta[0]. $textValjasta[2]; ?>
|
|
|
tagasi üles |
|
 |
Aq
HV kasutaja
liitunud: 01.01.2003
|
23.12.2013 22:36:07
|
|
|
Ehh, jah ma niimoodi tegingi nagu EvilRms kirjeldab Aga see vist ei ole eriti elegantne lahendus? Igatahes mõtlen mingi hetk edasi, kuidas selle DOM abil paremini teha.
|
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
23.12.2013 22:45:10
|
|
|
Javascriptiga: document.getElementById('cutout').innerHTML=''; või siis document.getElementById('cutout').style.display='none';
|
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004

|
23.12.2013 23:39:25
|
|
|
LiivaneLord, veel elegantsem oleks teha removeChild käsuga.
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
24.12.2013 00:34:30
|
|
|
mikk36, jep.
|
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|