Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.www.php > #21829

metà di un DOM: codice scritto ma è lunghissimo!

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)

Show all headers | View raw


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


Thread

metà di un DOM: codice scritto ma è lunghissimo! Sandro kensan <kensan@kensan.it> - 2017-12-10 14:52 +0100

csiph-web