salve ragazzi,
ho una stringa del tipo
prova1 ; prova2; ciao )
io voglio sostituire tutto ciò che è dopo l'ultimo ; fino alla ).
come si costrisce l'espressione regolare per la funzione ereg_replace()
salve ragazzi,
ho una stringa del tipo
prova1 ; prova2; ciao )
io voglio sostituire tutto ciò che è dopo l'ultimo ; fino alla ).
come si costrisce l'espressione regolare per la funzione ereg_replace()
se ti interessa senza espressioni regolari, ti posto questo codice:
i link delle funzioni usate:Codice PHP:
$pippo="prova1 ; prova2; ciao ) ";
$newStr = "nuovo testo";
$pos = strrpos($pippo, ";")+2;
echo substr_replace($pippo, $newStr, $pos, strlen($pippo));
http://it2.php.net/manual/it/functio...tr-replace.php
http://it2.php.net/manual/it/function.strrpos.php
http://it2.php.net/manual/it/function.strlen.php
ciao
il codice che hai scritto significa che da la posizione dopo aver trovato due ";".
Io ho fatto semplicemente con str_replace. Il problema sono eventuali spazi.
Sicuramente la tua è più corretta.
Adesso Provo
Ti spiego il mio codice:
ciaoCodice PHP:
//Stringa originale
$pippo="prova1 ; prova2; ciao ) ";
//Stringa da sostituire
$newStr = "nuovo testo";
/*
Cerco la posizione dell'ultima occorrenza del ';', faccio +2
in modo che mi prenda anche l'eventuale spazio
*/
$pos = strrpos($pippo, ";")+2;
/*sostituisco con la nuova stringa solo la parte di stringa
a partire dalla posione trovata in precedenza fino alla fine della stringa originale
*/
echo substr_replace($pippo, $newStr, $pos, strlen($pippo));
toglimi un altro dubbio.
Lui considera solamente 2 spazi o di più?
A me interessa con n spazi che non so!!
Grazie ancora
lo script considera un solo spazio( viene impostato con il +2), per essere + chiaro, prova a vedere gli esempi:
A questo punto però, se ti serve utilizzare N spazi, ti conviene usare le espressioni regolari, se il numero di pazi fosse stato fisso, sarebbe andato bene il mio script, ma se vuoi mantenere un num di spazi variabile, penso che l'unica soluzione siano le espressioni regolari...Codice PHP:
<?php
//Stringa originale
$pippo="prova1 ; prova2; ciao ) ";
$newStr = "nuovo testo";
$pos = strrpos($pippo, ";");
echo substr_replace($pippo, $newStr, $pos, strlen($pippo));
echo "
";
//Visaulizzerà prova1 ; prova2nuovo testo
$pos = strrpos($pippo, ";")+1;
echo substr_replace($pippo, $newStr, $pos, strlen($pippo));
//Visaulizzerà prova1 ; prova2;nuovo testo
echo "
";
$pos = strrpos($pippo, ";")+2;
echo substr_replace($pippo, $newStr, $pos, strlen($pippo));
//Visaulizzerà prova1 ; prova2; nuovo testo
?>
Purtroppo in questo caso non posso esserti d'aiuto perchè non sono molto ferrato sull'argomento...
mi spiace.
ciao
Lore
grazie ancora, ma penso proprio che devo utilizzare le espressioni regolari, dove ho un defecit grandissimo.
AIUTO!!!!!!!!!
prova usando questa:codice:$newStr = preg_replace('/^(.*;).*?$/','$1'.$str_sostitutiva,$tua_stringa);
dA .. foto di viaggio
L'esperienza è il tipo di insegnante più difficile.
Prima ti fa l'esame, e poi ti spiega la lezione.