Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.www.php > #21829
| From | Sandro kensan <kensan@kensan.it> |
|---|---|
| Newsgroups | it.comp.www.php |
| Subject | metà di un DOM: codice scritto ma è lunghissimo! |
| Date | 2017-12-10 14:52 +0100 |
| Message-ID | <f94shrFahlfU1@mid.individual.net> (permalink) |
Ho scritto il codice per mettere un ads (pubblicità adsense) a metà di
un testo in html ma il codice che ne risulta è molto lungo, questo in
parole semplici il codice che ho scritto:
* una funzione che trova il testo (nodeValue) di un nodo e di tutti i
children (funzione ricorsiva)
* una funzione che Trasforma il testo html in un nodo
L'algoritmo php è questo:
1) memorizza tutti i figli di "body" dello stesso livello con la
lunghezza del testo (vedi la prima funzione) in due array
2) Trova la metà del testo e memorizza il nodo immediatamente prima
della metà, la metà del testo è basata sulla lunghezza del testo di un
nodo (ramo), vedi il punto 1)
3) Inserisce la pubblicità (una stringa html) a metà del DOM usando la
seconda funzione e insertBefore()
Esempio di html:
<p>
test<span>foo<b>bar</b></span>
</p>
prova test
<span>foo<b>bar</b></span>
test
<span>foo<b>bar</b></span>
<br>
<script>
ignored
</script>
<!-- comment is ignored -->
<p>Ciao come stai?</p>
Stringhe trovate:
string(10) "testfoobar"
string(10) "prova test"
string(6) "foobar"
-----------------------> posizione 2.5
string(4) "test"
string(6) "foobar"
string(0) ""
string(0) ""
string(0) ""
string(0) ""
string(15) "Ciao come stai?"
La metà trovata è in posizione 2.5, qui inserisce una stringa html:
<p> test<span>foo<b>bar</b></span> </p> prova test<span>foo<b>bar</b></span>
<a href="www.adsense.com">PUBBLICITÀ</a>
test<span>foo<b>bar</b></span> <br><script> ignored </script><!--
comment is ignored --><p>Ciao come stai?</p>
--
Sandro kensan www.kensan.it & www.qiqi.it geek site
Saluto gli agenti della NSA - Hello NSA - www.nsa.gov
Back to it.comp.www.php | Previous | Next | Find similar | Unroll thread
metà di un DOM: codice scritto ma è lunghissimo! Sandro kensan <kensan@kensan.it> - 2017-12-10 14:52 +0100
csiph-web