- Home
- Categorie
- Coding e Sistemistica
- PHP
- str_replace, solo per il primo trovato
-
str_replace, solo per il primo trovato
Ciao a tutti!
Ho un problemino...
All'interno di una stringa ($str1) devo sostituire al primo carattere $c1 trovato un'altro carattere ($c2).
Facendo...str_replace($c1, $c2, $str1);
...li sostituisce tutti!!!Ho provato a cercare in php.net, ho visto che la "str_replace" accetta un paramentro count, ma purtroppo è solo di ritorno (indica il numero di caratteri modificati o qualcosa del genere).
Purtroppo non ho trovato altre funzioni che possano aiutarmi.
HELP!!!
-
In fondo al manuale php ( http://it.php.net/manual/it/function.str-replace.php ) trovi la soluzione (che ti posto qui sotto):
If you want to replace only the first occurence of a string you can use this function: <?php function str_replace_once($needle, $replace, $haystack) { // Looks for the first occurence of $needle in $haystack // and replaces it with $replace. $pos = strpos($haystack, $needle); if ($pos === false) { // Nothing found return $haystack; } return substr_replace($haystack, $replace, $pos, strlen($needle)); } ?>
-
...a causa del mio ottimo inglese non mi sono avventurato nei vari "commenti" in php.net...
Conclusione?
Sono un pirla! (e devo mettermi a studiare inglese).Grazie mille!!!
:brindisi:
-
oppure usi [url=www.php.net/preg_replace]preg_replace
-
Io non riesco a fare questa sostituzione di stringa:
str_ireplace(**, <strong>, $rowreview[slopes_text]); str_ireplace('**', '</strong>', $rowreview[slopes_text]); echo "$rowreview[slopes_text]";
forse i caratteri [ e ] sono caratteri "speciali"?
Come posso fare?Mi sembra utile fare in modo che gli utenti che vogliono scrivere un testo usino le stesse regole di formazzattazione del forum
GRAZIE
-
Sopra ci sono i caratteri che fanno apparire il grassetto ma non so come farli visualizzare. sono parentesi quadra b chiusa parentesi.
-
Io non riesco a fare questa sostituzione di stringa:
Codice:
str_ireplace([BBB], <strong>, $rowreview[slopes_text]);
str_ireplace([/BBB], '</strong>', $rowreview[slopes_text]);
echo "$rowreview[slopes_text]";forse i caratteri [ e ] sono caratteri "speciali"?
Come posso fare?Mi sembra utile fare in modo che gli utenti che vogliono scrivere un testo usino le stesse regole di formazzattazione del forum
-
Devo mettere un apice prima delle parentesi quadre?
Mi era stata suggerita una soluzione su questo forum, mi pare, ma non la trovo più
-
ciao fabiosky,fai così:
[php]str_ireplace("[BBB]", "<strong>", $rowreview[slopes_text]);
str_ireplace("[/BBB]", "</strong>", $rowreview[slopes_text]);
echo "$rowreview[slopes_text]";
[/php];)
ciao!