Salve, vorrei far in modo che se ho la frase: "zypp0 zypp02" e voglio fare il replace di zypp0 con 'ciao', la frase non diventi "ciao ciao2" ma "ciao zypp02", sapete se è possibile fare ciò con str_replace? Oppure con preg_replace?
Salve, vorrei far in modo che se ho la frase: "zypp0 zypp02" e voglio fare il replace di zypp0 con 'ciao', la frase non diventi "ciao ciao2" ma "ciao zypp02", sapete se è possibile fare ciò con str_replace? Oppure con preg_replace?
Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?
Se vuoi sostituire solamente la prima occorrenza trovata ti basta utilizzare la funzione preg_replace() con il parametro limit impostato ad 1.
"Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)
No, cioè non vorrei solo la prima occorrenza, ma solamente se la parola inizia e finisce come nella parola da sostituire, ovvero se la frase è:
"zypp02 zypp0" viene sostituito solo zypp0 (il secondo) e zypp02 rimane invariato.
Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?
Ma nell'esempio che proponi contraddici le tue affermazioni dato che la strinca inizia con "zypp0" ma NON finisce con esso dato che l'ultimo carattere è un 2 "zypp02".
La stringa dovrebbe avere la forma:
"zypp0...., ..., zypp0"
"Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)
metti pure gli spazi
Codice PHP:
$str = 'zypp0 zypp02';
echo str_replace('zypp0 ', 'ciao ', $str);
http://www.miniscript.it
Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.
@satifal intendevo che parola deve esser quella con nessuna modifica come un numero dopo..
@oly la parola varia, non so dove e quante volte è ripetuta, quindi potrebbe anche essere la frase: "Ciao zypp0, zypp02, boh"
Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?
Con str_replace() non e' possibile, devi usare una regular expression con gli word boundaries:
codice:$word = 'zypp0'; $string = 'Ciao zypp0, zypp02, boh'; echo preg_replace("#\b$word\b#", 'ciao', $string);
Ok ricominciamo da 0.
ho due array, uno contenente le parole da sostituire (esempio: zypp0 e zypp02) e il secondo con ciò che verrà messo al posto dei valori del primo array (che potrebbe essere: [ url = http://ciao.it ]@zypp0[ / url ] e @zypp02), il problema è quindi che se faccio uno str_replace in zypp02 'zypp0' viene sostituito mentre NON dovrebbe. Quindi con preg replace si può fare ciò? Ovvero sostituire due array come ho specificato..
Per capirci in codici:
Così verrebbe fuori:Codice PHP:
$primo = array('@zypp0','@zypp02');
$secondo = array('<a href="sito.it">@zypp0','@zypp02');
$frase = "Ciao @zypp0, ciao @zypp02";
echo str_replace($primo, $secondo, $frase);
"Ciao @zypp0, ciao @zypp02"
Mentre dovrebbe venir fuori:
"Ciao @zypp0, ciao @zypp02"
E ripeto che sono due array con valori a me SCONOSCIUTI.
Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?
onestamente non ho capito.
Posta un pò di codice magari...
http://www.miniscript.it
Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.
Ora l' ho postato:
Così verrebbe fuori:Codice PHP:
$primo = array('@zypp0','@zypp02');
$secondo = array('<a href="sito.it">@zypp0','@zypp02');
$frase = "Ciao @zypp0, ciao @zypp02";
echo str_replace($primo, $secondo, $frase);
Mentre vorrei che venisse fuori:
E ripeto che sono due array con valori a me SCONOSCIUTI.Ciao @zypp0, ciao @zypp02
Per capire meglio il concetto di "zypp0 sostituito e zypp02 no", vengono estratte le parole dopo @ con preg_match_all, poi si cercano nel db, se esistono vengonos ostituiti con l' esempio di zypp0, ovvero URL nickname, se non esistono rimangono invariati.
Ora che ci penso, K.B. dato che le parole stanno negli array, potrei usare la funzione preg_replace in un foreach? Cioè otterrei ciò che desidero?
Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?