Newsgroup: it.comp.www.php
Titolo: Funzione strpos

FRASE ESAMINATA.
Nell'Ottobre 1529 Carlo V, rispettando gli accordi di pace fatti con Papa 
Clemente VII, pone sotto assedio Firenze
Utilizzo della funzione:
Per TestoRichiesto (Ottobre)
$TestoRichiesto = "Ottobre";
$PosizioneTestoRichiesto = strpos($row['contenutopag'], $TestoRichiesto);
Per TestoRichiesto (Ottobre) - PosizioneTestoRichiesto = 17
Mentre � chiaro che Ottobre inizia dalla posizione 5 (contando da zero)
Ripetendo con altre parola (Firenze)
il risultato �:
Per TestoRichiesto (Firenze) - PosizioneTestoRichiesto = 119
Dov'� che sbaglio?
Saluti
Leonardo 

 $TestoRichiesto);
Prova usando mb_strpos() al posto di strpos()
Bye.


Ho controlalto e fatto con solo testo  strpos('Lorenzo', 're'); 
//restituisce 2
Ma con il testo che prelevo dal record nulla da fare mi da sempre 6 
posizioni in pi�.
Utilizzo html_entity_decode prima della funzione strpos.
Leonardo

 ha scritto nel messaggio 
news:97ineh...@mid.individual.net...

Fatto, ma fa si comporta esattamente allo stesso modo, sempre 6 posti in 
pi�.
Leonardo

 più.
Andiamo sul pesante. Prova questo pezzo di codice:
for ($i=0; $i<strlen($row['contenutopag']); $i++) {
 print(ord($row['contenutopag'][$i]))."\n";
}
E vedi cosa sono i primi 6 caratteri (il loro codice ASCII)
Bye.


Ti ringrazio.
38 & 108 l 116 t 59 ; 112 p 38 & 103 g 116 t 59 ; 13 10 9 78 N 101 e 108 l 
108 l 38 & 97 a 109 m 112 p 59 ; 114 r 115 s 113 q 117 u 111 o 59 ; 79 O 116 
t 116 t 111 o 98 b 114 r 101 e 32 49 1 53 5 50 2 57 9 32 67 C 97 a 114 r 108 
l 111 o 32 86 V 44 , 32 114 r 105 i 115 s 112 p 101 e 116 t 116 t 97 a 110 n 
100 d 111 o 32 103 g 108 l 105 i 32 97 a 99 c 99 c 111 o 114 r 100 d 105 i 
32 100 d 105 i 32 112 p 97 a 99 c 101 e 32 102 f 97 a 116 t 116 t 105 i 32 
99 c 111 o 110 n 32 80 P 97 a 112 p 97 a 32 67 C 108 l 101 e 109 m 101 e 110 
n 116 t 101 e 32 86 V 73 I 73 I
Ho fatto una piccola modifica per vedere direttamente il testo dall'ASCII.
Rimane il fatto, ma da dove prende queste?
38 & 108 l 116 t 59 ; 112 p 38 & 103 g 116 t 59 ; 13 10 9 78
Saluti
Leonardo


A me sembra un
<p>
(tab)	Nell... eccetera

Dov'è che sbaglio?
Cosi' a occhio direi nella frase esaminata.
Prova a postare il risultato di:
 print HTMLEntities($row['contenutopag']);
...e' davvero "Nell'Ottobre 1529..."?
Leonardo
-- 
Surstangas via akcipitr', la ceval' fojnumas nur:
Jen vigla damo en brakum', kaj vi pensas pri forkur'?
Do li turnis sin, kaj turnis sin, kaj ekdormis sen singard';
Kaj lin apudis je l' vekigx, soldatoj kaj Barnard'.

Utilizzo html_entity_decode prima della funzione strpos.
Ahhhh. E quindi
	Nell'Ottobre
diventa
	Nell&apice;Ottobre   (okay, l'entity l'ho inventata)
ed ecco i sei caratteri donde sbucano.


>>> pi�.

Hai ragione, nel database � cos�,
<p>
 Nell&rsquo;Ottobre 1529 Carlo V, rispettando gli accordi di pace fatti con 
Papa Clemente VII, pone sotto assedio Firenze per riportare i Medici al 
potere.<br />
 <br />
</p>
ho tolto  <p> e </p> ed ho risolto:
Ma la funzione html_entity_decode non avrebbe dovuto farlo in automatico?
Ciao
Leonardo

>>> pi�.

CORREGGO,
ho tolto <p> e </p> ma non ho risolto, sempre 6 in pi�.
Leonardo


Sulla pagian web � cos�:
Nell'Ottobre 1529 Carlo V, rispettando gli accordi di pace fatti con Papa 
Clemente VII, pone sotto assedio Firenze
nel codice � cos�:
<p>
 Nell&rsquo;Ottobre 1529 Carlo V, rispettando gli accordi di pace fatti con 
Papa Clemente VII, pone sotto assedio Firenze
</p><br />
Ciao
Leonardo

 </p><br />
La butto lï¿œ: il codice ï¿œ xhtml validato ? Se sï¿œ, forse ï¿œ piï¿œ agevole
parsare un oggetto DOM o SimpleXML ?
-- 
Aiuta l'Alleanza Ribelle :
http://vwdarkside.com/it/jedi/maestro-padulo-132140

Clemente VII, pone sotto assedio Firenze
Okay. AFAICS, stai cercando di fare una funzione "trova" che evidenzi il
testo trovato e un po' del testo intorno, del tipo
	...tobre 1529 Carlo V, rispettando gli accordi di pac...
...e questo NON lo fai con strpos, o meglio devi sputare troppo sangue e
bile per farlo.
Ti serve preg_match.
Con un po' di esperienza con le regexp, riesci perfino a selezionare per
ciascun match una roba cosi', "al massimo 20 caratteri a destra e sx ma,
se possibile, fermandosi sul bordo di una parola e grassettando il testo
cercato":
	...Ottobre 1529 Carlo V, RISPETTANDO gli accordi di pace...
Unica cosa, usa html_entity_decode per eliminare le entities, che senno'
ti farebbero trovare porcate tipo "quot;Vile, tu uccidi un uomo morto".
Ah, e strip_tags. Stesso motivo.
Usi una prima preg_match, senza la storia dei 20 caratteri bla bla, solo
per cercare se il match c'e' o no. Qui ti fa anche strpos. Forse perfino
meglio.
Poi strip_tags e decode ti trovano un testo "pulito" che ancora pero' ha
dentro il testo cercato. Li' ravani con preg_match e sei lesto.



hai perfettamente ragione, che mi consigli di fare per bypassare il 
problema?
Leonardo


grazie
Leonardo