Newsgroup: it.comp.www.php
Titolo: Problema con stringa

Vorrei evidenziare in giallo due o più numeri non adiacenti contenuti nella 
stringa, dopo 15 gg di tentativi mi arrendo :-).
Es: 01 09 90, oppure 05 50
Ho provato con explode() ma non ci riesco proprio, chi mi può dare qualche 
dritta?
Grazie
Vincenzo
<?php
$numeri = "05 09";
#
$stringa = "01 05 09 50 90";
$risultato = str_replace("$numeri", "<span style='background-color: 
#FFFF00'>$numeri</span>", "$stringa");
#
echo "Risultato:  $risultato";
?> 

...usa i mocassini...
.
.
.
.
.
.
.
.
.
.
Va be' dai scusa, sono in treno tornando dalla fiera e sono cotto.
Non lo faccio più. :-P
-- 
. Guido   _.-----.  \.-./       . .
\`-.._,-' .-. .-.`-' ``-.  _,-'.'`.
  `-.____,-. `:. `.-'-._.O-:_ .:'.,|
            `-" `-"          `-.__.'

 ha scritto nel messaggio 
news:1iq3qku.l57agfp1yj1jN%ottant...@tiscali.it...

-----------------------------
:-) 

dritta?
Esplodi la stringa di numeri in un array.
Trasformala con array_map o con un ciclo foreach in un array di regexp
della forma "/\b$numero\$b/".
A quel punto con preg_replace trasformi ogni regexp in
	"<span class=\"yellow\">&</span>"
e sei lesto.
Leonardo
-- 
And where the black and corkscrew towers climb,
Lost and athirst the ragged pack abides,
Old as the aeons, trapped in tombs of time,
Sailing the tortuous temporal tides

 ha scritto nel messaggio 
news:eovbh4thcpf10r23i...@4ax.com...

Grazie, sei stato molto utile 

 ha scritto nel messaggio 
news:49160198$0$40307$4faf...@reader5.news.tin.it...

Purtroppo ancora non riesco a risolvere, con lo script qui sotto riesco a 
evidenziare i numeri cercati
nella stringa, ma su tre righe.
Io vorrei evidenziarli insieme all'interno della stringa su una sola riga
Grazie
<?php
$stringa = "01,05,07,09,90";
$stringa_da_cercare = array('05','90','01');
foreach ($stringa_da_cercare as $numero)
{
$pattern = "/$numero/";
$replacement = "<span style='background-color: #FFFF00'>$numero</span>";
$result = preg_replace($pattern, $replacement, $stringa);
echo "<br>$result";
}
?> 

echo "<br>$result";
La regexp risulta fatta da: "\\b(05|90|01)\\b", che vuol dire:
	\\b confine di parola (quindi 05 va bene, 705 no. Se pero' vuoi
	    evidenziare 05 dentro 705, basta tu tolga quelle \\b).
	(   quel che viene fra parentesi finisce in \\1 piu' sotto.
	05
	|	oppure
	90
	|	oppure
	01
	)   fine testo da salvare (di volta in volta sara' 05, 90...)
	\\b confine di parola (90 va bene, 902 no)
Sicche':
	\\b05	trova 05 se tutta la parola o all'inizio della parola
	05\\b	trova 05 " " o alla fine della parola
	\\b05\\b	= la parola deve essere 05
	05	= la parola deve contenere 05
E una volta ottenuta la regexp, preg_replace dice "Sostituisci questo
con <span...> seguito dal contenuto della stringa in parentesi, ecc."
per cui "01,05,07,09,90" matcha:
	"(01),(05),07,09,(90)"
e diventa
	<span>01</span>,<span>05</span>,07,...
Come avevi messo tu, preg_replace sostituiva con $numero e funzionava
per cosi' dire per caso, perche' sostituivi 01 con 01 e non succedeva
niente di male. Nel caso generale, rischi di sostituire TUTTO con una
solo dei mapping.


 ha scritto nel messaggio 
news:qlpnh415eja1bjps6...@4ax.com...

Sei un grande, funziona perfettamente... ora mi devo studiare un pň le 
regexp
Grazie Leonardo